Sunteți pe pagina 1din 6

Ministerul Educației, Culturii și Cercetării al Republicii Moldova

Universitatea Tehnică a Moldovei


Facultatea Calculatoare Informatica si Microelectronica

Raport
Lucrarea de laborator Nr.1

Disciplina: Programarea aplicațiilor mobile


Tema: UI View Model - Lucrarea Nr.1

A îndeplinit Botnaru Alexandru


A controlat Rusu Cristian

Chișinău 2021
Condiții:

De utilizat componentele UI pentru a realiza următoarele condiții:

1. De creat un push notification pe ecranul dispozitivului care se va trata peste 10s.


2. De utilizat browserul intern al dispozitivului, pentru a inițializa o căutare în Google,
conform cuvântului cheie introdus în TextBox.
3. De rulat evenimentul de lucru a camerei frontale și/sau spate la selectarea unuia din cele 2
radio butoane propuse.
4. De tratat evenimentul de captare a pozei executate cu una din cele doua camere, și de afișat
într-o altă Activitate
5. Este un punct la dorința voastră (sau un brainstorming)

Design-ul pentru activity_main.xml:

Design-ul pentru activity_photo.xml:


Codul sursa:
MainActivity.java
package com.example.lab1pam;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.app.NotificationCompat;
import androidx.core.app.NotificationManagerCompat;
import androidx.core.content.ContextCompat;

import android.Manifest;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.app.SearchManager;
import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.hardware.Camera;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.provider.MediaStore;

import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Timer;
import java.util.TimerTask;

public class MainActivity extends AppCompatActivity {

static final int REQUEST_IMAGE_CAPTURE = 1;


Button notificationBtn, searchBtn, goBackBtn, magicButton;
RadioGroup radioGroup;
RadioButton frontCameraBtn, rearCameraBtn;
EditText searchInput;
ImageView imageView;
TextView showDateTV, dateTextView;
Calendar calendar;
SimpleDateFormat simpleDateFormat;
String currentDate;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

notificationBtn = findViewById(R.id.notificationBtn);
searchInput = findViewById(R.id.searchInput);
searchBtn = findViewById(R.id.searchButton);
frontCameraBtn = findViewById(R.id.frontCameraBtn);
rearCameraBtn = findViewById(R.id.rearCameraBtn);
radioGroup = findViewById(R.id.radioGroup);

showDateTV = findViewById(R.id.showDateTV);
dateTextView = findViewById(R.id.dateTextView);
magicButton = findViewById(R.id.magicButton);
//Notification
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationChannel channel = new NotificationChannel("Lab1 Notification",
"Lab1 Notification", NotificationManager.IMPORTANCE_DEFAULT);
NotificationManager manager = getSystemService(NotificationManager.class);
manager.createNotificationChannel(channel);
}

notificationBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
NotificationCompat.Builder builder = new
NotificationCompat.Builder(MainActivity.this, "Lab1 Notification")
.setContentTitle("PAM PAM PAM")
.setContentText("Wash your hands!")
.setSmallIcon(R.drawable.ic_baseline_clean_hands_24)
.setAutoCancel(true);

new Timer().schedule(new TimerTask() {


@Override
public void run() {
NotificationManagerCompat managerCompat =
NotificationManagerCompat.from(MainActivity.this);
managerCompat.notify(1, builder.build());
}
}, 10000);
}
});

/////////Google Search

searchBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String searchWords = searchInput.getText().toString();
if (!searchWords.equals("")) {
googleSearchBrowser(searchWords);
}

}
});

//Permission for using camera


if (ContextCompat.checkSelfPermission(MainActivity.this,
Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(MainActivity.this,
new String[]{
Manifest.permission.CAMERA
},
100);
}

//search with the browser


private void googleSearchBrowser(String words) {
try {
Uri uri = Uri.parse("http://www.google.com/search?q=" + words);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
} catch (ActivityNotFoundException e) {
e.printStackTrace();
Toast.makeText(this, "Error!", Toast.LENGTH_SHORT).show();
}
}
///////// Taking photos \\\\\\\\\\\\\

public void openFrontCamera(View view) {


Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra("com.google.assistant.extra.USE_FRONT_CAMERA", true);
intent.putExtra("android.intent.extra.USE_FRONT_CAMERA", true);
intent.putExtra("android.intent.extras.LENS_FACING_FRONT",
REQUEST_IMAGE_CAPTURE);
intent.putExtra("android.intent.extras.CAMERA_FACING", REQUEST_IMAGE_CAPTURE);

//for Samsung
intent.putExtra("camerafacing", "front");
intent.putExtra("previous_mode", "front");

startActivityForResult(intent, 100);
setContentView(R.layout.activity_photo);

public void openRearCamera(View view) {


Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra("com.google.assistant.extra.USE_BACK_CAMERA", true);
intent.putExtra("android.intent.extra.USE_BACK_CAMERA", true);
intent.putExtra("android.intent.extras.LENS_FACING_BACK",
REQUEST_IMAGE_CAPTURE);
intent.putExtra("android.intent.extras.CAMERA_FACING", REQUEST_IMAGE_CAPTURE);

//for Samsung
intent.putExtra("camerafacing", "back");
intent.putExtra("previous_mode", "back");

startActivityForResult(intent, 100);
setContentView(R.layout.activity_photo);

//show photo in other activity


@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent
data) {
super.onActivityResult(requestCode, resultCode, data);
imageView = findViewById(R.id.imageView);
goBackBtn = findViewById(R.id.goBackButton);
if (requestCode == 100) {
//get capture image
Bitmap captureImage = (Bitmap) data.getExtras().get("data");
//set capture image
imageView.setImageBitmap(captureImage);
}
goBackBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setContentView(R.layout.activity_main);
}
});
}
//brainstorming

public void showDateAndTime(View view) {


calendar = Calendar.getInstance();
simpleDateFormat = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
currentDate = simpleDateFormat.format(calendar.getTime());

showDateTV.setText(currentDate);
showDateTV.setVisibility(View.VISIBLE);
dateTextView.setVisibility(View.VISIBLE);

}
}

AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.lab1pam">

<uses-permission android:name="android.permission.CAMERA" />


<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.Lab1PAM">
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />


</intent-filter>
</activity>
</application>

</manifest>

S-ar putea să vă placă și

  • Laboratorul 1
    Laboratorul 1
    Document11 pagini
    Laboratorul 1
    Дарья Рг
    Încă nu există evaluări
  • Lab 3 LFA
    Lab 3 LFA
    Document3 pagini
    Lab 3 LFA
    Fil Gorea
    Încă nu există evaluări
  • PAM Lab 1
    PAM Lab 1
    Document6 pagini
    PAM Lab 1
    Vladislav Crivenco
    Încă nu există evaluări
  • Lab1 Pam
    Lab1 Pam
    Document9 pagini
    Lab1 Pam
    Ion Popescu
    100% (2)
  • Lab 2 Pam
    Lab 2 Pam
    Document5 pagini
    Lab 2 Pam
    Augusta Bucataru
    Încă nu există evaluări
  • A1
    A1
    Document11 pagini
    A1
    Amarfii Sergiu
    Încă nu există evaluări
  • Amoo 6
    Amoo 6
    Document6 pagini
    Amoo 6
    Mihai Ciubotaru
    Încă nu există evaluări
  • Amoo 4
    Amoo 4
    Document5 pagini
    Amoo 4
    AlionaCrigan
    Încă nu există evaluări
  • Lucrare de Laborator nr.4 Florea Cristina
    Lucrare de Laborator nr.4 Florea Cristina
    Document9 pagini
    Lucrare de Laborator nr.4 Florea Cristina
    Cristina Florea
    Încă nu există evaluări
  • AMOO3 Morcotilo Nichita FINAL
    AMOO3 Morcotilo Nichita FINAL
    Document11 pagini
    AMOO3 Morcotilo Nichita FINAL
    Никита Мк.
    Încă nu există evaluări
  • AI-191 Medinschi Ion SO4
    AI-191 Medinschi Ion SO4
    Document5 pagini
    AI-191 Medinschi Ion SO4
    Carolin
    Încă nu există evaluări
  • Lab 1
    Lab 1
    Document15 pagini
    Lab 1
    Fil Gorea
    Încă nu există evaluări
  • Moştenirea Multiplă.
    Moştenirea Multiplă.
    Document4 pagini
    Moştenirea Multiplă.
    romamd555s
    Încă nu există evaluări
  • Lab.3 Florea Cristina
    Lab.3 Florea Cristina
    Document7 pagini
    Lab.3 Florea Cristina
    Cristina Florea
    Încă nu există evaluări
  • TW Lab 5
    TW Lab 5
    Document4 pagini
    TW Lab 5
    danielploaia
    Încă nu există evaluări
  • Capitolul II Limbajul UML
    Capitolul II Limbajul UML
    Document34 pagini
    Capitolul II Limbajul UML
    torjocf
    Încă nu există evaluări
  • LL7 Baze de Date
    LL7 Baze de Date
    Document5 pagini
    LL7 Baze de Date
    Anya Mr
    Încă nu există evaluări
  • Lab1 Somipp
    Lab1 Somipp
    Document14 pagini
    Lab1 Somipp
    Jen4ik
    100% (1)
  • PAM
    PAM
    Document3 pagini
    PAM
    nicu zuza
    Încă nu există evaluări
  • Somipp Linux 1 UTM
    Somipp Linux 1 UTM
    Document10 pagini
    Somipp Linux 1 UTM
    Cristi Poselețchi
    Încă nu există evaluări
  • TW Lab 6
    TW Lab 6
    Document6 pagini
    TW Lab 6
    DanuIepuras
    Încă nu există evaluări
  • TW Lab4
    TW Lab4
    Document8 pagini
    TW Lab4
    Dan
    Încă nu există evaluări
  • TW Lab5
    TW Lab5
    Document3 pagini
    TW Lab5
    Dan
    Încă nu există evaluări
  • ASAD Lab03 Raport
    ASAD Lab03 Raport
    Document6 pagini
    ASAD Lab03 Raport
    Mihai U
    Încă nu există evaluări
  • APA - Proiect de Curs
    APA - Proiect de Curs
    Document43 pagini
    APA - Proiect de Curs
    Dan
    Încă nu există evaluări
  • Lab.6 FC
    Lab.6 FC
    Document3 pagini
    Lab.6 FC
    Cristina Florea
    Încă nu există evaluări
  • TW Lab2
    TW Lab2
    Document4 pagini
    TW Lab2
    Dan
    Încă nu există evaluări
  • TP 7 BuzaDina
    TP 7 BuzaDina
    Document5 pagini
    TP 7 BuzaDina
    Dina Buză
    Încă nu există evaluări
  • Lab 1
    Lab 1
    Document9 pagini
    Lab 1
    Fil Gorea
    Încă nu există evaluări
  • Proiect de Curs BD Exemplu-Unlocked
    Proiect de Curs BD Exemplu-Unlocked
    Document60 pagini
    Proiect de Curs BD Exemplu-Unlocked
    Amarfii Sergiu
    Încă nu există evaluări
  • AMOO - Proiect de An
    AMOO - Proiect de An
    Document4 pagini
    AMOO - Proiect de An
    Dan
    Încă nu există evaluări
  • Somipp Linux 3 UTM
    Somipp Linux 3 UTM
    Document7 pagini
    Somipp Linux 3 UTM
    Cristi Poselețchi
    Încă nu există evaluări
  • SOMIPP Labs
    SOMIPP Labs
    Document107 pagini
    SOMIPP Labs
    Ionel Boaghe
    Încă nu există evaluări
  • APPOO Teme Evaluare
    APPOO Teme Evaluare
    Document15 pagini
    APPOO Teme Evaluare
    Adrian Solomon
    100% (1)
  • SOMIPP Lab6
    SOMIPP Lab6
    Document9 pagini
    SOMIPP Lab6
    X3 KTO
    Încă nu există evaluări
  • Laboratorul 1
    Laboratorul 1
    Document9 pagini
    Laboratorul 1
    Tina Cris
    Încă nu există evaluări
  • Lab 5
    Lab 5
    Document7 pagini
    Lab 5
    Dorin Nicoara
    Încă nu există evaluări
  • Lab1 GC
    Lab1 GC
    Document8 pagini
    Lab1 GC
    Andrei Barbalat
    Încă nu există evaluări
  • Rezolvarea Numerica A Sistemelor de Ecuatii Liniare
    Rezolvarea Numerica A Sistemelor de Ecuatii Liniare
    Document8 pagini
    Rezolvarea Numerica A Sistemelor de Ecuatii Liniare
    Valentin I. Marius
    Încă nu există evaluări
  • Laboratorul 5
    Laboratorul 5
    Document7 pagini
    Laboratorul 5
    ion
    Încă nu există evaluări
  • TAP Lab6 Popov Biatrice - CR 191
    TAP Lab6 Popov Biatrice - CR 191
    Document6 pagini
    TAP Lab6 Popov Biatrice - CR 191
    Alina Axenti
    Încă nu există evaluări
  • Lab 4 RC
    Lab 4 RC
    Document4 pagini
    Lab 4 RC
    Den's Vlogs
    Încă nu există evaluări
  • Ppe 1
    Ppe 1
    Document5 pagini
    Ppe 1
    Victor Lungu
    Încă nu există evaluări
  • Somipp 2
    Somipp 2
    Document8 pagini
    Somipp 2
    Damean Alexandra
    Încă nu există evaluări
  • Lucrare de Laborator nr.1
    Lucrare de Laborator nr.1
    Document17 pagini
    Lucrare de Laborator nr.1
    Cristina Florea
    Încă nu există evaluări
  • Lab 3 Ppe
    Lab 3 Ppe
    Document8 pagini
    Lab 3 Ppe
    Anastasia Gherman
    Încă nu există evaluări
  • Refer at
    Refer at
    Document11 pagini
    Refer at
    Дарья Рг
    Încă nu există evaluări
  • Lab. 2
    Lab. 2
    Document7 pagini
    Lab. 2
    Cristina Florea
    Încă nu există evaluări
  • Lab7 POO
    Lab7 POO
    Document10 pagini
    Lab7 POO
    Grosu Elena
    Încă nu există evaluări
  • Raport Final
    Raport Final
    Document26 pagini
    Raport Final
    Cristi Adașan
    Încă nu există evaluări
  • Laboratorul Cercetari
    Laboratorul Cercetari
    Document5 pagini
    Laboratorul Cercetari
    Buinovschi Corneliu
    Încă nu există evaluări
  • Lab2 La Programare in Windows
    Lab2 La Programare in Windows
    Document12 pagini
    Lab2 La Programare in Windows
    Andrei Barbalat
    Încă nu există evaluări
  • Lab 1
    Lab 1
    Document9 pagini
    Lab 1
    Cristian Conea
    Încă nu există evaluări
  • LL4 BD
    LL4 BD
    Document6 pagini
    LL4 BD
    Anya Mr
    Încă nu există evaluări
  • Laborator 1 Cucu Eugeniu
    Laborator 1 Cucu Eugeniu
    Document5 pagini
    Laborator 1 Cucu Eugeniu
    Cucu Eugen
    Încă nu există evaluări
  • Lab 1 PMMA
    Lab 1 PMMA
    Document3 pagini
    Lab 1 PMMA
    BatiriMichael
    Încă nu există evaluări
  • Lucrarea 4 Utm
    Lucrarea 4 Utm
    Document10 pagini
    Lucrarea 4 Utm
    BlandjLdhui
    Încă nu există evaluări
  • Somipplaba5 (Ru)
    Somipplaba5 (Ru)
    Document99 pagini
    Somipplaba5 (Ru)
    Maria Sevciuc
    0% (1)
  • Lab 1 Pam
    Lab 1 Pam
    Document6 pagini
    Lab 1 Pam
    Augusta Bucataru
    Încă nu există evaluări
  • PAM Lab 1 Rotaru Dan
    PAM Lab 1 Rotaru Dan
    Document3 pagini
    PAM Lab 1 Rotaru Dan
    Dan
    Încă nu există evaluări
  • Anul III EvP1 1
    Anul III EvP1 1
    Document3 pagini
    Anul III EvP1 1
    AlexandruBotnaru
    Încă nu există evaluări
  • Cap1-3 PPE
    Cap1-3 PPE
    Document81 pagini
    Cap1-3 PPE
    AlexandruBotnaru
    Încă nu există evaluări
  • Atestare RC 2
    Atestare RC 2
    Document6 pagini
    Atestare RC 2
    AlexandruBotnaru
    Încă nu există evaluări
  • Test1proba PPE
    Test1proba PPE
    Document20 pagini
    Test1proba PPE
    AlexandruBotnaru
    Încă nu există evaluări
  • Test2proba PPE
    Test2proba PPE
    Document30 pagini
    Test2proba PPE
    AlexandruBotnaru
    Încă nu există evaluări
  • Laboratorul 8 LFA
    Laboratorul 8 LFA
    Document4 pagini
    Laboratorul 8 LFA
    AlexandruBotnaru
    Încă nu există evaluări
  • Laborator 1
    Laborator 1
    Document5 pagini
    Laborator 1
    AlexandruBotnaru
    Încă nu există evaluări
  • Structuri de Date Si Algoritmi Culeg Probleme DS PDF
    Structuri de Date Si Algoritmi Culeg Probleme DS PDF
    Document33 pagini
    Structuri de Date Si Algoritmi Culeg Probleme DS PDF
    AlexandruBotnaru
    Încă nu există evaluări
  • Ghostemane Proiect
    Ghostemane Proiect
    Document7 pagini
    Ghostemane Proiect
    AlexandruBotnaru
    Încă nu există evaluări