Skip to content
Snippets Groups Projects
Commit 0dac6259 authored by @potel5u's avatar @potel5u
Browse files

first commit (reglage probleme double import de junit4)

parents
Branches
No related tags found
No related merge requests found
Showing
with 870 additions and 0 deletions
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<bytecodeTargetLevel target="21" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="deploymentTargetSelector">
<selectionStates>
<SelectionState runConfigName="app">
<option name="selectionMode" value="DROPDOWN" />
</SelectionState>
</selectionStates>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="testRunner" value="CHOOSE_PER_TEST" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleJvm" value="#GRADLE_LOCAL_JAVA_HOME" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/app" />
</set>
</option>
<option name="resolveExternalAnnotations" value="false" />
</GradleProjectSettings>
</option>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectMigrations">
<option name="MigrateToGradleLocalJavaHome">
<set>
<option value="$PROJECT_DIR$" />
</set>
</option>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="jbr-21" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">
<option name="id" value="Android" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RunConfigurationProducerService">
<option name="ignoredProducers">
<set>
<option value="com.intellij.execution.junit.AbstractAllInDirectoryConfigurationProducer" />
<option value="com.intellij.execution.junit.AllInPackageConfigurationProducer" />
<option value="com.intellij.execution.junit.PatternConfigurationProducer" />
<option value="com.intellij.execution.junit.TestInClassConfigurationProducer" />
<option value="com.intellij.execution.junit.UniqueIdConfigurationProducer" />
<option value="com.intellij.execution.junit.testDiscovery.JUnitTestDiscoveryConfigurationProducer" />
<option value="org.jetbrains.kotlin.idea.junit.KotlinJUnitRunConfigurationProducer" />
<option value="org.jetbrains.kotlin.idea.junit.KotlinPatternConfigurationProducer" />
</set>
</option>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>
\ No newline at end of file
plugins {
alias(libs.plugins.android.application)
}
android {
namespace 'fr.ul.projet'
compileSdk 35
defaultConfig {
applicationId "fr.ul.projet"
minSdk 21
targetSdk 35
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
}
}
dependencies {
implementation libs.appcompat
implementation libs.material
implementation libs.activity
implementation libs.constraintlayout
testImplementation libs.junit
androidTestImplementation libs.ext.junit
androidTestImplementation libs.espresso.core
}
\ No newline at end of file
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
\ No newline at end of file
package fr.ul.projet;
import android.content.Context;
import androidx.test.platform.app.InstrumentationRegistry;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.*;
/**
* Instrumented test, which will execute on an Android device.
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
@Test
public void useAppContext() {
// Context of the app under test.
Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
assertEquals("fr.ul.projet", appContext.getPackageName());
}
}
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<application
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.PROJET"
tools:targetApi="31">
<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>
\ No newline at end of file
package fr.ul.projet;
import android.os.Bundle;
import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_main);
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
}
}
\ No newline at end of file
package fr.ul.projet.modele;
import fr.ul.projet.outils.FabriqueIdentifiant;
public class Acces {
private int id;
private int xCoinHautGauche, yCoinHautGauche;
private int xCoinBasDroite, yCoinBasDroite;
private Piece destination;
public Acces(Piece dest, int x1, int y1, int x2, int y2){
this.destination = dest;
this.xCoinHautGauche = x1;
this.yCoinHautGauche = y1;
this.xCoinBasDroite = x2;
this.yCoinBasDroite = y2;
this.id = FabriqueIdentifiant.getInstance().getCptAcces();
}
public int getId() {
return this.id;
}
public int getXCoinBasDroite() {
return this.xCoinBasDroite;
}
public void setxCoinBasDroite(int xCoinBasDroite) {
this.xCoinBasDroite = xCoinBasDroite;
}
public int getXCoinHautGauche() {
return this.xCoinHautGauche;
}
public void setxCoinHautGauche(int xCoinHautGauche) {
this.xCoinHautGauche = xCoinHautGauche;
}
public int getYCoinBasDroite() {
return this.yCoinBasDroite;
}
public void setyCoinBasDroite(int yCoinBasDroite) {
this.yCoinBasDroite = yCoinBasDroite;
}
public int getYCoinHautGauche() {
return this.yCoinHautGauche;
}
public void setyCoinHautGauche(int yCoinHautGauche) {
this.yCoinHautGauche = yCoinHautGauche;
}
public Piece getDestination() {
return this.destination;
}
public void setDestination(Piece destination) {
this.destination = destination;
}
}
package fr.ul.projet.modele;
import org.json.JSONObject;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import fr.ul.projet.outils.FabriqueIdentifiant;
public class Modele {
private boolean pieceAffichee;
private String fichierJson;
private String orientationCourante;
HashMap<Integer, Piece> pieces;
Piece pieceCourante;
/**
* Constructeur d'un Modèle
*
*/
public Modele(){
this.pieceAffichee = false;
this.pieceCourante = null;
this.fichierJson = new File("").getAbsolutePath() + "/modele" + FabriqueIdentifiant.getInstance().getCptJson() + ".json";
}
public void nouveau(){
this.pieceAffichee = false;
this.pieceCourante = null;
this.fichierJson = new File("").getAbsolutePath() + "/modele" + FabriqueIdentifiant.getInstance().getCptJson() + ".json";
this.pieces.clear();
FabriqueIdentifiant.reset();
}
/**
* Getters et Setters ------------------------------------------------------------------------------------------------------------------------
*/
public Piece getPieceCourante() {
return this.pieceCourante;
}
public String getFichierJson() {
return this.fichierJson;
}
public String getOrientationCourante() {
return this.orientationCourante;
}
public HashMap<Integer, Piece> getPieces() {
return this.pieces;
}
public boolean isPieceAffichee() {
return this.pieceAffichee;
}
public void setFichierJson(String fichierJson) {
this.fichierJson = fichierJson;
}
public void setOrientationCourante(String orientationCourante) {
this.orientationCourante = orientationCourante;
}
public void setPieceAffichee(boolean pieceAffichee) {
this.pieceAffichee = pieceAffichee;
}
public void setPieceCourante(Piece pieceCourante) {
this.pieceCourante = pieceCourante;
this.pieceAffichee = true;
}
/**
* Méthodes d'ajout et suppression ------------------------------------------------------------------------------------------------------------------------
*/
public void ajouterPiece(String nom, String photoNord, String photoSud, String photoEst, String photoOuest){
Piece piece = new Piece(nom, photoNord, photoSud, photoEst, photoOuest);
this.pieces.put(piece.getId(), piece);
this.setPieceCourante(piece);
}
public void modifierPieceCourante(String nom, String photoNord, String photoSud, String photoEst, String photoOuest){
this.getPieceCourante().setNom(nom);
this.getPieceCourante().setPhotoNord(photoNord);
this.getPieceCourante().setPhotoSud(photoSud);
this.getPieceCourante().setPhotoEst(photoEst);
this.getPieceCourante().setPhotoOuest(photoOuest);
}
public void supprimerPiece(int idPiece){
Piece pieceSupp = this.getPieces().get(idPiece);
pieceSupp.getAcces().clear();
for (Piece p : this.getPieces().values()){
if (!p.equals(pieceSupp)) {
for (Acces a : p.getAcces().values()) {
if (a.getDestination().equals(pieceSupp)) {
p.getAcces().remove(a.getId());
}
}
}
}
this.getPieces().remove(idPiece);
}
public void ajouterAcces(Piece destination, int x1, int y1, int x2, int y2){
this.getPieceCourante().ajouterAcces(destination, x1, y1, x2, y2);
}
public void supprimerAcces(String idAcces){
this.getPieceCourante().supprimerAcces(idAcces);
}
/**
* Méthodes de déplacement ------------------------------------------------------------------------------------------------------------------------
*/
public void utiliserAcces(String idAcces){
this.setPieceCourante(this.getPieceCourante().getAcces().get(idAcces).getDestination());
}
public void tournerHoraire(){
switch (this.getOrientationCourante()){
case "NORD":
this.setOrientationCourante("EST");
break;
case "SUD":
this.setOrientationCourante("OUEST");
break;
case "EST":
this.setOrientationCourante("SUD");
break;
case "OUEST":
this.setOrientationCourante("NORD");
break;
default:
break;
}
}
public void tournerAntiHoraire(){
switch (this.getOrientationCourante()){
case "NORD":
this.setOrientationCourante("OUEST");
break;
case "SUD":
this.setOrientationCourante("EST");
break;
case "EST":
this.setOrientationCourante("NORD");
break;
case "OUEST":
this.setOrientationCourante("SUD");
break;
default:
break;
}
}
/**
* Méthodes de lecture ou écriture d'un modèle ------------------------------------------------------------------------------------------------------------------------
*/
public String toJson(){
JSONObject modeleJson = new JSONObject();
List pieces = new LinkedList();
for (Piece p : this.pieces.values()){
pieces.add(p.toJson());
}
try{
modeleJson.put("pièces", pieces);
} catch (Exception e){
e.printStackTrace();
}
return modeleJson.toString();
}
public void enregistrerModele() throws Exception {
PrintWriter flotFiltre;
FileWriter flot;
try {
File file = new File(this.fichierJson);
if (file.exists()){
file.delete();
}
flot = new FileWriter(file.getAbsoluteFile());
flotFiltre = new PrintWriter(new BufferedWriter(flot));
flotFiltre.print(this.toJson());
flotFiltre.close();
} catch (IOException e){
throw new Exception("Impossble d'écrire (" + e + ")");
}
}
public void chargerModele() throws Exception{
try{
// Charger via json
} catch (Exception e) {
throw new Exception("Impossible de charger le modèle (" + e + ")");
}
}
}
package fr.ul.projet.modele;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import fr.ul.projet.outils.FabriqueIdentifiant;
public class Piece {
private int id;
String nom;
String photoNord, photoSud, photoEst, photoOuest;
HashMap<Integer, Acces> acces = new HashMap<>();
public Piece(String nom, String photoNord, String photoSud, String photoEst, String photoOuest){
this.id = FabriqueIdentifiant.getInstance().getIdentifiantPiece();
this.photoNord = photoNord;
this.photoSud = photoSud;
this.photoEst = photoEst;
this.photoOuest = photoOuest;
this.nom = nom;
}
public int getId(){
return this.id;
}
public String getNom() {
return this.nom;
}
public void setNom(String nom){
this.nom = nom;
}
public String getPhotoNord() {
return this.photoNord;
}
public void setPhotoNord(String photoNord){
this.photoNord = photoNord;
}
public String getPhotoEst() {
return this.photoEst;
}
public void setPhotoEst(String photoEst){
this.photoEst = photoEst;
}
public String getPhotoSud() {
return this.photoSud;
}
public void setPhotoSud(String photoSud){
this.photoSud = photoSud;
}
public String getPhotoOuest(){
return this.photoOuest;
}
public void setPhotoOuest(String photoOuest){
this.photoOuest = photoOuest;
}
public HashMap<Integer, Acces> getAcces(){
return this.acces;
}
public void ajouterAcces(Piece destination, int x1, int y1, int x2, int y2){
Acces acc = new Acces(destination, x1, y1, x2, y2);
this.getAcces().put(acc.getId(), acc);
}
public void supprimerAcces(String idAcces){
this.getAcces().remove(idAcces);
}
public Map toJson(){
Map page = new LinkedHashMap();
page.put("id", this.getId());
page.put("nom", this.getNom());
page.put("cheminPhotoNord", this.getPhotoNord());
page.put("cheminPhotoSud", this.getPhotoSud());
page.put("cheminPhotoEst", this.getPhotoEst());
page.put("cheminPhotoOuest", this.getPhotoOuest());
return page;
}
}
package fr.ul.projet.outils;
public class FabriqueIdentifiant {
private int cptPiece;
private int cptJson;
private int cptAcces;
static FabriqueIdentifiant instance;
public FabriqueIdentifiant(){
cptPiece = 0;
cptJson=1;
cptAcces = 0;
}
public static FabriqueIdentifiant getInstance(){
if (instance == null){
instance = new FabriqueIdentifiant();
}
return instance;
}
public int getIdentifiantPiece(){
cptPiece++;
return cptPiece;
}
public int getCptJson(){
cptJson++;
return cptJson;
}
public int getCptAcces(){
cptAcces++;
return cptAcces;
}
public static void reset(){
int cpt = getInstance().getCptJson();
instance = new FabriqueIdentifiant();
instance.cptJson=cpt-1;
}
}
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<path android:pathData="M31,63.928c0,0 6.4,-11 12.1,-13.1c7.2,-2.6 26,-1.4 26,-1.4l38.1,38.1L107,108.928l-32,-1L31,63.928z">
<aapt:attr name="android:fillColor">
<gradient
android:endX="85.84757"
android:endY="92.4963"
android:startX="42.9492"
android:startY="49.59793"
android:type="linear">
<item
android:color="#44000000"
android:offset="0.0" />
<item
android:color="#00000000"
android:offset="1.0" />
</gradient>
</aapt:attr>
</path>
<path
android:fillColor="#FFFFFF"
android:fillType="nonZero"
android:pathData="M65.3,45.828l3.8,-6.6c0.2,-0.4 0.1,-0.9 -0.3,-1.1c-0.4,-0.2 -0.9,-0.1 -1.1,0.3l-3.9,6.7c-6.3,-2.8 -13.4,-2.8 -19.7,0l-3.9,-6.7c-0.2,-0.4 -0.7,-0.5 -1.1,-0.3C38.8,38.328 38.7,38.828 38.9,39.228l3.8,6.6C36.2,49.428 31.7,56.028 31,63.928h46C76.3,56.028 71.8,49.428 65.3,45.828zM43.4,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2c-0.3,-0.7 -0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C45.3,56.528 44.5,57.328 43.4,57.328L43.4,57.328zM64.6,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2s-0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C66.5,56.528 65.6,57.328 64.6,57.328L64.6,57.328z"
android:strokeWidth="1"
android:strokeColor="#00000000" />
</vector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<path
android:fillColor="#3DDC84"
android:pathData="M0,0h108v108h-108z" />
<path
android:fillColor="#00000000"
android:pathData="M9,0L9,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,0L19,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M29,0L29,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M39,0L39,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M49,0L49,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M59,0L59,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M69,0L69,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M79,0L79,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M89,0L89,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M99,0L99,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,9L108,9"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,19L108,19"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,29L108,29"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,39L108,39"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,49L108,49"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,59L108,59"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,69L108,69"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,79L108,79"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,89L108,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,99L108,99"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,29L89,29"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,39L89,39"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,49L89,49"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,59L89,59"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,69L89,69"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,79L89,79"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M29,19L29,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M39,19L39,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M49,19L49,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M59,19L59,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M69,19L69,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M79,19L79,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
</vector>
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
<monochrome android:drawable="@drawable/ic_launcher_foreground" />
</adaptive-icon>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment