diff --git a/.idea/compiler.xml b/.idea/compiler.xml index b589d56e9f285d8cfdc6c270853a5d439021a278..b86273d9424b73937ca6ad7933f6b7eeb60f4a3d 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> <component name="CompilerConfiguration"> - <bytecodeTargetLevel target="17" /> + <bytecodeTargetLevel target="21" /> </component> </project> \ No newline at end of file diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml index b268ef36cd2de3a14ddddf25aa9f5d4e95731e18..2159e853647dc794a0b2787150f89d2bdea8f8d1 100644 --- a/.idea/deploymentTargetSelector.xml +++ b/.idea/deploymentTargetSelector.xml @@ -2,7 +2,7 @@ <project version="4"> <component name="deploymentTargetSelector"> <selectionStates> - <SelectionState runConfigName="app"> + <SelectionState runConfigName="MainActivity"> <option name="selectionMode" value="DROPDOWN" /> </SelectionState> </selectionStates> diff --git a/.idea/gradle.xml b/.idea/gradle.xml index cb865f697f47f6843c977b82522f285cde326243..ecd50f02b65093c34f22e87f347bab2b30fa3eae 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -4,6 +4,7 @@ <component name="GradleSettings"> <option name="linkedExternalProjectsSettings"> <GradleProjectSettings> + <option name="testRunner" value="CHOOSE_PER_TEST" /> <option name="externalProjectPath" value="$PROJECT_DIR$" /> <option name="gradleJvm" value="jbr-17" /> <option name="modules"> diff --git a/.idea/misc.xml b/.idea/misc.xml index 8978d23db569daa721cb26dde7923f4c673d1fc9..b2c751a35c77d4f7b713fe3bfc2cfb693e4d984f 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,6 +1,6 @@ <project version="4"> <component name="ExternalStorageConfigurationManager" enabled="true" /> - <component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="jbr-17" project-jdk-type="JavaSDK"> + <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"> diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1a6e2b7d4941c358ca0ee90bd88e9572529179a1..b5d83a451fe03416d1a6e1fa58a10e06ff8ad0dd 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -31,6 +31,7 @@ </intent-filter> </activity> <activity android:name=".HomeActivity"/> + <activity android:name=".TutorialActivity"/> <activity android:name=".PublicActivity" android:exported="true" /> diff --git a/app/src/main/java/com/example/myapplication/HomeActivity.java b/app/src/main/java/com/example/myapplication/HomeActivity.java index c6317af36f68aa8c2c8055df6149ab3e86c8e3e7..f24543c19298108c90b3048346803220478e769b 100644 --- a/app/src/main/java/com/example/myapplication/HomeActivity.java +++ b/app/src/main/java/com/example/myapplication/HomeActivity.java @@ -8,6 +8,24 @@ import android.widget.Button; import androidx.appcompat.app.AppCompatActivity; public class HomeActivity extends AppCompatActivity { + @Override + protected void onResume() { + super.onResume(); + String tutorialKey = "FIRST_TIME_TUTORIAL"; + boolean preferences = getIntent().getBooleanExtra("PREFERENCES",true); + if (!preferences) getPreferences(MODE_PRIVATE).edit().putBoolean(tutorialKey, false).apply(); + boolean firstTime = getPreferences(MODE_PRIVATE).getBoolean(tutorialKey, true); + if (firstTime) { + runTutorial(); + } + } + + private void runTutorial() { + Intent intent = new Intent(HomeActivity.this, TutorialActivity.class); + startActivity(intent); + finish(); + } + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); diff --git a/app/src/main/java/com/example/myapplication/PublicActivity.java b/app/src/main/java/com/example/myapplication/PublicActivity.java index b26759c3326cf3298f8096d967619a9f4eb09484..f50330c8f816d14fb07c7a0b9e6c64e7009df43f 100644 --- a/app/src/main/java/com/example/myapplication/PublicActivity.java +++ b/app/src/main/java/com/example/myapplication/PublicActivity.java @@ -4,13 +4,11 @@ package com.example.myapplication; import androidx.appcompat.app.AppCompatActivity; import androidx.fragment.app.Fragment; +import android.content.Intent; import android.os.Bundle; -import android.view.MenuItem; import com.google.android.material.bottomnavigation.BottomNavigationView; -import java.util.Objects; - public class PublicActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { @@ -37,7 +35,7 @@ public class PublicActivity extends AppCompatActivity { break; case "PhotoPage": loadFragment(new PhotoPage()); - bottomNavigationView.setSelectedItemId(R.id.navigation_documenter); + bottomNavigationView.setSelectedItemId(R.id.navigation_identifier); break; } @@ -52,8 +50,13 @@ public class PublicActivity extends AppCompatActivity { selectedFragment = new StatsPage(); } else if (item.getItemId() == R.id.navigation_parametres) { selectedFragment = new SettingsPage(); - } else { + } else if (item.getItemId() == R.id.navigation_identifier) { selectedFragment = new PhotoPage(); + } else { + selectedFragment=null; + Intent intent = new Intent(PublicActivity.this, HomeActivity.class); + startActivity(intent); + finish(); } loadFragment(selectedFragment); return true; diff --git a/app/src/main/java/com/example/myapplication/TutorialActivity.java b/app/src/main/java/com/example/myapplication/TutorialActivity.java new file mode 100644 index 0000000000000000000000000000000000000000..924e1278a8b1447165bfeed94623b4adccc4631e --- /dev/null +++ b/app/src/main/java/com/example/myapplication/TutorialActivity.java @@ -0,0 +1,83 @@ +package com.example.myapplication; + +import android.content.Intent; +import android.graphics.drawable.Drawable; +import android.os.Bundle; +import android.view.View; +import android.widget.Button; +import android.widget.ImageView; +import android.widget.LinearLayout; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.core.content.ContextCompat; +import androidx.core.content.res.ResourcesCompat; +import androidx.viewpager2.widget.ViewPager2; + +import com.google.android.material.tabs.TabLayout; +import com.google.android.material.tabs.TabLayoutMediator; + +import java.util.Arrays; +import java.util.List; + +public class TutorialActivity extends AppCompatActivity { + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_tutorial); + + ViewPager2 viewPager2=findViewById(R.id.tutorial_viewpager); + + List<Integer> layouts = Arrays.asList( + R.layout.fragment_tutorial_page1, + R.layout.fragment_tutorial_page2, + R.layout.fragment_tutorial_page3 + ); + TutorialFragmentAdapter adapter = new TutorialFragmentAdapter(this, layouts); + viewPager2.setAdapter(adapter); + LinearLayout dotsLayout = findViewById(R.id.dots_layout); + Button tutoEndButton = findViewById(R.id.tuto_end_button); + View.OnClickListener lTutoEndButton = new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(TutorialActivity.this, HomeActivity.class); + intent.putExtra("PREFERENCES", false); + startActivity(intent); + finish(); + } + }; + tutoEndButton.setOnClickListener(lTutoEndButton); + + // Add dots based on page count + int pageCount = layouts.size(); + ImageView[] dots = new ImageView[pageCount]; + for (int i = 0; i < pageCount; i++) { + dots[i] = new ImageView(this); + dots[i].setImageDrawable(ContextCompat.getDrawable(this, R.drawable.dot_inactive)); + LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( + LinearLayout.LayoutParams.WRAP_CONTENT, + LinearLayout.LayoutParams.WRAP_CONTENT + ); + params.setMargins(8, 0, 8, 0); + dots[i].setLayoutParams(params); + dotsLayout.addView(dots[i]); + } + + // Highlight the first dot + dots[0].setImageDrawable(ContextCompat.getDrawable(this, R.drawable.dot_active)); + + // Update dots on page change + viewPager2.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() { + @Override + public void onPageSelected(int position) { + if (position==2) tutoEndButton.setVisibility(View.VISIBLE); + else tutoEndButton.setVisibility(View.INVISIBLE); + for (int i = 0; i < pageCount; i++) { + dots[i].setImageDrawable(ContextCompat.getDrawable( + getApplicationContext(), + i == position ? R.drawable.dot_active : R.drawable.dot_inactive + )); + } + } + }); + } +} diff --git a/app/src/main/java/com/example/myapplication/TutorialFragmentAdapter.java b/app/src/main/java/com/example/myapplication/TutorialFragmentAdapter.java new file mode 100644 index 0000000000000000000000000000000000000000..1deec3b60cf50807ef9c57a7af0f5620bce3e79b --- /dev/null +++ b/app/src/main/java/com/example/myapplication/TutorialFragmentAdapter.java @@ -0,0 +1,29 @@ +package com.example.myapplication; + +import androidx.annotation.NonNull; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentActivity; +import androidx.viewpager2.adapter.FragmentStateAdapter; + +import java.util.List; + +public class TutorialFragmentAdapter extends FragmentStateAdapter { + private final List<Integer> layouts; + + public TutorialFragmentAdapter(@NonNull FragmentActivity fragmentActivity, List<Integer> layouts) { + super(fragmentActivity); + this.layouts = layouts; + } + + @NonNull + @Override + public Fragment createFragment(int position) { + return TutorialPageFragment.newInstance(layouts.get(position)); + } + + @Override + public int getItemCount() { + return layouts.size(); + } +} + diff --git a/app/src/main/java/com/example/myapplication/TutorialPageFragment.java b/app/src/main/java/com/example/myapplication/TutorialPageFragment.java new file mode 100644 index 0000000000000000000000000000000000000000..803cea3530f0dd9caa401dd308558164ef06744d --- /dev/null +++ b/app/src/main/java/com/example/myapplication/TutorialPageFragment.java @@ -0,0 +1,30 @@ +package com.example.myapplication; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; + +public class TutorialPageFragment extends Fragment { + private static final String ARG_LAYOUT_ID = "layout_id"; + + public static TutorialPageFragment newInstance(int layoutId) { + TutorialPageFragment fragment = new TutorialPageFragment(); + Bundle args = new Bundle(); + args.putInt(ARG_LAYOUT_ID, layoutId); + fragment.setArguments(args); + return fragment; + } + + @Nullable + @Override + public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + int layoutId = getArguments() != null ? getArguments().getInt(ARG_LAYOUT_ID) : 0; + return inflater.inflate(layoutId, container, false); + } +} diff --git a/app/src/main/res/drawable/avi_main.png b/app/src/main/res/drawable/avi_main.png new file mode 100644 index 0000000000000000000000000000000000000000..4330ea4282dc8a3a26aaa2762619d4b5be788bf8 Binary files /dev/null and b/app/src/main/res/drawable/avi_main.png differ diff --git a/app/src/main/res/drawable/becasseau_sanderling_2.png b/app/src/main/res/drawable/becasseau_sanderling_2.png new file mode 100644 index 0000000000000000000000000000000000000000..1e5d1d1186ecd6657b8ddad037eb2955bcb26876 Binary files /dev/null and b/app/src/main/res/drawable/becasseau_sanderling_2.png differ diff --git a/app/src/main/res/drawable/camera.png b/app/src/main/res/drawable/camera.png index 2d8c79f06f4f539e734c4e202de19070188be598..62de7e7f8a3d36074c34d9b2ebc042d1a27e81b1 100644 Binary files a/app/src/main/res/drawable/camera.png and b/app/src/main/res/drawable/camera.png differ diff --git a/app/src/main/res/drawable/dot_active.xml b/app/src/main/res/drawable/dot_active.xml new file mode 100644 index 0000000000000000000000000000000000000000..65e93ce484a9ac144c3df6ee5ca5f4c901db3910 --- /dev/null +++ b/app/src/main/res/drawable/dot_active.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8"?> +<shape xmlns:android="http://schemas.android.com/apk/res/android"> + <corners android:radius="50dp"/> + <solid android:color="@color/white"/> + <size android:width="16dp" android:height="16dp"/> +</shape> \ No newline at end of file diff --git a/app/src/main/res/drawable/dot_inactive.xml b/app/src/main/res/drawable/dot_inactive.xml new file mode 100644 index 0000000000000000000000000000000000000000..49a1c479a3912c9bf1916f20ea7848b67f854823 --- /dev/null +++ b/app/src/main/res/drawable/dot_inactive.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8"?> +<shape xmlns:android="http://schemas.android.com/apk/res/android"> + <corners android:radius="50dp"/> + <solid android:color="#777777"/> + <size android:width="12dp" android:height="12dp"/> +</shape> diff --git a/app/src/main/res/drawable/gallery.png b/app/src/main/res/drawable/gallery.png new file mode 100644 index 0000000000000000000000000000000000000000..48ff824023c65cab7f6f03fc82b0ac01dc0f5417 Binary files /dev/null and b/app/src/main/res/drawable/gallery.png differ diff --git a/app/src/main/res/drawable/learn.png b/app/src/main/res/drawable/learn.png new file mode 100644 index 0000000000000000000000000000000000000000..77eb3dfe7e0dd1ebf07577b326809e20069f783c Binary files /dev/null and b/app/src/main/res/drawable/learn.png differ diff --git a/app/src/main/res/drawable/line_1.png b/app/src/main/res/drawable/line_1.png new file mode 100644 index 0000000000000000000000000000000000000000..078434dab950e3cf3c1fda5a155c947f03498b53 Binary files /dev/null and b/app/src/main/res/drawable/line_1.png differ diff --git a/app/src/main/res/drawable/line_2.png b/app/src/main/res/drawable/line_2.png new file mode 100644 index 0000000000000000000000000000000000000000..762f936140319731be058b5b453687eb55979dc8 Binary files /dev/null and b/app/src/main/res/drawable/line_2.png differ diff --git a/app/src/main/res/drawable/line_3.png b/app/src/main/res/drawable/line_3.png new file mode 100644 index 0000000000000000000000000000000000000000..301662b5eae2fd24fd411414bb01fe2c8716e2ab Binary files /dev/null and b/app/src/main/res/drawable/line_3.png differ diff --git a/app/src/main/res/drawable/logo_main.png b/app/src/main/res/drawable/logo_main.png new file mode 100644 index 0000000000000000000000000000000000000000..fa4236f74d6ae14358950bf86c8c9c4091d3d9a4 Binary files /dev/null and b/app/src/main/res/drawable/logo_main.png differ diff --git a/app/src/main/res/drawable/navigation_button_left.png b/app/src/main/res/drawable/navigation_button_left.png new file mode 100644 index 0000000000000000000000000000000000000000..1b28249dc18b68de7bfbd05d9f31d9e32446d6cf Binary files /dev/null and b/app/src/main/res/drawable/navigation_button_left.png differ diff --git a/app/src/main/res/drawable/navigation_button_right.png b/app/src/main/res/drawable/navigation_button_right.png new file mode 100644 index 0000000000000000000000000000000000000000..da494ccce7171007074f0446db995683cc8c7f33 Binary files /dev/null and b/app/src/main/res/drawable/navigation_button_right.png differ diff --git a/app/src/main/res/drawable/plunv.png b/app/src/main/res/drawable/plunv.png new file mode 100644 index 0000000000000000000000000000000000000000..6dcd807a458121cf6083a38467f788bb8fc0c241 Binary files /dev/null and b/app/src/main/res/drawable/plunv.png differ diff --git a/app/src/main/res/drawable/polygon_4.png b/app/src/main/res/drawable/polygon_4.png index f91b4398dfc34c48615cd6cb879e785c7c590030..8c8b0ec782c7fb4c55d79a35fd4a1674f0a67ac1 100644 Binary files a/app/src/main/res/drawable/polygon_4.png and b/app/src/main/res/drawable/polygon_4.png differ diff --git a/app/src/main/res/drawable/polygon_6.png b/app/src/main/res/drawable/polygon_6.png new file mode 100644 index 0000000000000000000000000000000000000000..ffc0e9acbf3abc9fd7cc58544a8375ba3f60b267 Binary files /dev/null and b/app/src/main/res/drawable/polygon_6.png differ diff --git a/app/src/main/res/drawable/polygon_7.png b/app/src/main/res/drawable/polygon_7.png new file mode 100644 index 0000000000000000000000000000000000000000..4b8f59f91a77324de60666327752d6bab45690b0 Binary files /dev/null and b/app/src/main/res/drawable/polygon_7.png differ diff --git a/app/src/main/res/drawable/polygon_8.png b/app/src/main/res/drawable/polygon_8.png new file mode 100644 index 0000000000000000000000000000000000000000..216664e051d44efd0f3205a7f0a93d6b938a47f7 Binary files /dev/null and b/app/src/main/res/drawable/polygon_8.png differ diff --git a/app/src/main/res/drawable/polygon_9.png b/app/src/main/res/drawable/polygon_9.png new file mode 100644 index 0000000000000000000000000000000000000000..9e8475b398ddfc01621d79cbf6ff3b1af89586ec Binary files /dev/null and b/app/src/main/res/drawable/polygon_9.png differ diff --git a/app/src/main/res/drawable/shape_transparent_blue.xml b/app/src/main/res/drawable/shape_transparent_blue.xml new file mode 100644 index 0000000000000000000000000000000000000000..353b83ad1352ff88dd96c4c165e87d43eea4179b --- /dev/null +++ b/app/src/main/res/drawable/shape_transparent_blue.xml @@ -0,0 +1,25 @@ +<shape + xmlns:android="http://schemas.android.com/apk/res/android" + android:shape="rectangle" > + + <solid + android:color="@color/white"> + </solid> + + <stroke + android:width="2dp" + android:color="#00FFFFFF" > + </stroke> + + <padding + android:left="5dp" + android:top="5dp" + android:right="5dp" + android:bottom="5dp" > + </padding> + + <corners + android:radius="8dp"> + </corners> + <solid android:color="#E6517293" /> +</shape> \ No newline at end of file diff --git a/app/src/main/res/drawable/tuto_becasseau_desc.png b/app/src/main/res/drawable/tuto_becasseau_desc.png new file mode 100644 index 0000000000000000000000000000000000000000..a4b59d2d7bad5fc3f46a73e496686853dfd3d6a3 Binary files /dev/null and b/app/src/main/res/drawable/tuto_becasseau_desc.png differ diff --git a/app/src/main/res/layout/activity_home.xml b/app/src/main/res/layout/activity_home.xml index bc822ed17d580617a10d3c1f826228dbceb37b5c..37c63a1dc72a1b18c6583e00255a8d48e79cff80 100644 --- a/app/src/main/res/layout/activity_home.xml +++ b/app/src/main/res/layout/activity_home.xml @@ -31,8 +31,9 @@ <ImageView android:id="@+id/polygon_4" - android:layout_width="wrap_content" + android:layout_width="match_parent" android:layout_height="wrap_content" + android:scaleType="fitXY" android:src="@drawable/polygon_4" android:alpha="0.75" android:layout_gravity="center_horizontal|bottom" diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index e024e1b82a6afa25a744b6da52c98a8460332219..3b13ac8495c35e1ea90e99801f36e277713a502f 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -7,98 +7,50 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:clipToOutline="true" - android:background="@color/black"> + android:background="@color/white"> - <ImageView - android:alpha="0.4" - android:id="@+id/image_1" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:scaleType="centerCrop" - android:src="@drawable/image_1"/> - - - <TextView - android:id="@+id/sell_rad" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginStart="13dp" - android:layout_marginTop="14dp" - android:fontFamily="@font/mclaren" - android:layout_gravity="start|center" - android:text="@string/sell_rad" - android:textAppearance="@style/sell_rad" /> - - <ImageView - android:id="@+id/image_2" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="bottom|center_horizontal" - android:layout_marginBottom="50dp" - android:src="@drawable/image_2" - /> <ImageView - android:id="@+id/polygon_3" + android:id="@+id/imageView6" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:src="@drawable/polygon_3" - android:alpha="0.75" - android:layout_gravity="end|bottom" - /> + app:srcCompat="@drawable/plunv" + android:paddingHorizontal="70dp" + android:layout_gravity="bottom" + android:layout_marginBottom="240dp"/> <ImageView - android:id="@+id/rectangle_1" + android:id="@+id/imageView7" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_gravity="start|center_vertical" - android:layout_marginTop="250dp" - android:layout_marginStart="33dp" - android:alpha="0.75" - android:background="@drawable/rectangle_5" - /> + app:srcCompat="@drawable/logo_main" + android:layout_gravity="center" + android:paddingBottom="430dp" + android:paddingTop="174dp" + android:paddingHorizontal="37dp"/> <ImageView - android:id="@+id/rectangle_2" + android:id="@+id/imageView8" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_gravity="start" - android:layout_marginTop="167dp" - android:layout_marginEnd="250dp" - android:alpha="0.75" - android:background="@drawable/rectangle_5" - /> + app:srcCompat="@drawable/avi_main" + android:paddingHorizontal="60dp" + android:layout_gravity="bottom" + android:layout_marginBottom="220dp"/> <ImageView - android:id="@+id/rectangle_3" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="start" - android:layout_marginTop="150dp" - android:layout_marginEnd="300dp" - android:alpha="0.75" - android:background="@drawable/rectangle_5" - /> - - <ImageView - android:id="@+id/rectangle_4" - android:layout_width="wrap_content" + android:id="@+id/imageView9" + android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_gravity="end|center_vertical" - android:layout_marginTop="75dp" - android:layout_marginEnd="70dp" - android:alpha="0.75" - android:background="@drawable/rectangle_5" - /> + android:scaleType="fitXY" + app:srcCompat="@drawable/polygon_9" + android:layout_gravity="bottom"/> <ImageView - android:id="@+id/polygon_1" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:src="@drawable/polygon_1" - android:layout_gravity="end|center_vertical" - android:layout_marginBottom="25dp" - android:alpha="0.75" - /> - + android:id="@+id/imageView10" + android:layout_width="147dp" + android:layout_height="49dp" + app:srcCompat="@drawable/image_2" + android:layout_gravity="bottom|center_horizontal" + android:layout_marginBottom="18.4dp"/> </FrameLayout> diff --git a/app/src/main/res/layout/activity_tutorial.xml b/app/src/main/res/layout/activity_tutorial.xml new file mode 100644 index 0000000000000000000000000000000000000000..bbe02b662e8876260dfa5683405976e49476a8d9 --- /dev/null +++ b/app/src/main/res/layout/activity_tutorial.xml @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="utf-8"?> +<FrameLayout 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/public_activity" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="@color/black" + tools:context=".TutorialActivity"> + + <ImageView + android:alpha="0.4" + android:id="@+id/image_1" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:scaleType="centerCrop" + android:src="@drawable/image_1" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintBottom_toTopOf="@id/bottom_navigation" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintEnd_toEndOf="parent"/> + + <androidx.viewpager2.widget.ViewPager2 + android:id="@+id/tutorial_viewpager" + android:layout_width="match_parent" + android:layout_height="match_parent"/> + + <LinearLayout + android:id="@+id/dots_layout" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:orientation="horizontal" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintEnd_toEndOf="parent" + android:gravity="center" + android:padding="8dp" + android:layout_gravity="bottom|center_horizontal" + android:layout_marginBottom="19dp"/> + + <Button + android:id="@+id/tuto_end_button" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:backgroundTint="#517293" + style="@style/ButtonAppearance" + android:layout_gravity="center_horizontal|bottom" + android:layout_marginBottom="60dp" + android:text="@string/tuto_end" + android:fontFamily="@font/inter"/> +</FrameLayout> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_tutorial_page1.xml b/app/src/main/res/layout/fragment_tutorial_page1.xml new file mode 100644 index 0000000000000000000000000000000000000000..66e2cb69acdcafd8d306eaa8a6e4d3771a16b29c --- /dev/null +++ b/app/src/main/res/layout/fragment_tutorial_page1.xml @@ -0,0 +1,65 @@ +<?xml version="1.0" encoding="utf-8"?> +<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="match_parent"> + + <ImageView + android:layout_width="match_parent" + android:layout_height="match_parent" + android:paddingTop="5.7dp" + android:src="@drawable/polygon_6" /> + + <ImageView + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_gravity="center" + android:layout_marginTop="-131dp" + android:src="@drawable/line_1" /> + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:background="@drawable/shape_transparent_blue" + android:text="@string/tuto_id" + android:textSize="29sp" + android:fontFamily="@font/inter" + android:paddingHorizontal="36dp" + android:paddingVertical="13dp" + android:textColor="#D9D9D9" + android:textStyle="bold" + android:rotation="-5" + android:layout_gravity="center_vertical" + android:layout_marginBottom="250dp" + android:layout_marginLeft="-15dp"/> + + <FrameLayout + android:layout_width="320dp" + android:layout_height="296dp" + android:layout_gravity="center" + android:layout_marginTop="75dp"> + + <ImageView + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_gravity="center" + android:background="@drawable/shape_transparent"/> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:text="@string/tuto_cam" + android:textSize="16sp" + android:fontFamily="@font/inter" + android:paddingTop="12dp"/> + + <ImageView + android:layout_width="match_parent" + android:layout_height="match_parent" + android:src="@drawable/becasseau_sanderling_2" + android:paddingRight="15dp" + android:paddingLeft="15dp" + android:paddingTop="50dp" + android:paddingBottom="19dp"/> + </FrameLayout> +</FrameLayout> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_tutorial_page2.xml b/app/src/main/res/layout/fragment_tutorial_page2.xml new file mode 100644 index 0000000000000000000000000000000000000000..fbb737f3a35dcdbe7c5f46d73d11809205915e12 --- /dev/null +++ b/app/src/main/res/layout/fragment_tutorial_page2.xml @@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="utf-8"?> +<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:layout_width="match_parent" + android:layout_height="match_parent"> + + <ImageView + android:id="@+id/imageView2" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:paddingTop="65dp" + app:srcCompat="@drawable/polygon_7" /> + + <ImageView + android:id="@+id/imageView5" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_gravity="center" + android:paddingTop="269dp" + app:srcCompat="@drawable/line_2" /> + + <FrameLayout + android:layout_width="272dp" + android:layout_height="520dp" + android:layout_gravity="center" + android:layout_marginTop="70dp"> + <ImageView + android:layout_width="match_parent" + android:layout_height="match_parent" + android:src="@drawable/shape_transparent"/> + + <ImageView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:src="@drawable/gallery" + android:paddingHorizontal="24dp" + android:paddingTop="60dp" + android:paddingBottom="29dp"/> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:text="@string/tuto_gal" + android:textSize="16sp" + android:fontFamily="@font/inter" + android:paddingTop="12dp"/> + </FrameLayout> +</FrameLayout> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_tutorial_page3.xml b/app/src/main/res/layout/fragment_tutorial_page3.xml new file mode 100644 index 0000000000000000000000000000000000000000..709d0c044249c856f1a0814ffc1338e656fba8a5 --- /dev/null +++ b/app/src/main/res/layout/fragment_tutorial_page3.xml @@ -0,0 +1,76 @@ +<?xml version="1.0" encoding="utf-8"?> +<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:layout_width="match_parent" + android:layout_height="match_parent"> + + <ImageView + android:id="@+id/imageView3" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:scaleType="fitCenter" + app:srcCompat="@drawable/polygon_8" /> + + <ImageView + android:id="@+id/imageView4" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:paddingBottom="219.3dp" + app:srcCompat="@drawable/line_3" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:background="@drawable/shape_transparent_blue" + android:text="@string/tuto_app" + android:textAlignment="center" + android:textSize="26sp" + android:fontFamily="@font/inter" + android:paddingHorizontal="27dp" + android:paddingVertical="13dp" + android:textColor="#D9D9D9" + android:textStyle="bold" + android:rotation="-5" + android:layout_gravity="center_horizontal" + android:layout_marginBottom="250dp" + android:layout_marginLeft="-25dp" + android:layout_marginTop="160dp"/> + + <FrameLayout + android:layout_width="319dp" + android:layout_height="440dp" + android:layout_gravity="center" + android:layout_marginTop="90dp"> + <ImageView + android:layout_width="match_parent" + android:layout_height="match_parent" + android:src="@drawable/shape_transparent"/> + + <ImageView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:src="@drawable/learn" + android:paddingLeft="26dp" + android:paddingRight="63dp" + android:paddingBottom="96dp" + android:paddingTop="58dp"/> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:text="@string/tuto_page_app" + android:textSize="16sp" + android:fontFamily="@font/inter" + android:paddingTop="12dp"/> + + <ImageView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:src="@drawable/tuto_becasseau_desc" + android:paddingTop="318dp" + android:paddingRight="21dp" + android:paddingBottom="32dp" + android:paddingLeft="56dp"/> + </FrameLayout> +</FrameLayout> \ No newline at end of file diff --git a/app/src/main/res/menu/bottom_nav_menu.xml b/app/src/main/res/menu/bottom_nav_menu.xml index c6fc173b9ec6d329c541ed17530d84624b9d67c7..99c0786d42af28acc25446ce90bfebc94e4b4aa9 100644 --- a/app/src/main/res/menu/bottom_nav_menu.xml +++ b/app/src/main/res/menu/bottom_nav_menu.xml @@ -8,7 +8,11 @@ android:icon="@drawable/stats" android:title="Stats" /> <item - android:id="@+id/navigation_documenter" + android:id="@+id/navigation_accueil" + android:icon="@drawable/home" + android:title="Accueil"/> + <item + android:id="@+id/navigation_identifier" android:icon="@drawable/camera" android:title="Documenter" /> <item diff --git a/app/src/main/res/values/refs.xml b/app/src/main/res/values/refs.xml new file mode 100644 index 0000000000000000000000000000000000000000..a6b3daec9354f9ae75cdf8d94a67446c6227dd96 --- /dev/null +++ b/app/src/main/res/values/refs.xml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources></resources> \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ed7a9ffd7fa18aac1e971637417cdebaf52ef69e..2382e86ee7c442d5f91886c0116700221e17ef5e 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -8,7 +8,7 @@ <string name="hello_blank_fragment">Hello blank fragment</string> <string name="learn">Apprendre</string> <string name="settings">Paramètres</string> - <string name="photo">Documenter</string> + <string name="photo">Identifier</string> <string name="stats">Statistiques</string> <string name="login">Se connecter</string> <string name="user_name">Nom d\'utilisateur</string> @@ -57,4 +57,10 @@ <string name="chevalier"><u>Chevalier gambette</u>\nPlutôt solitaire et long sur pattes, vous me reconnaîtrez à mes pattes et à mon bec bien rouges. Pour le reste je suis brun moucheté sur le dos et blanc sur le ventre, une parfaite tenue de camouflage !</string> + <string name="tuto_cam">Avec sa caméra</string> + <string name="tuto_id">Identifier des espèces</string> + <string name="tuto_gal">Sur sa galerie</string> + <string name="tuto_app">En apprendre plus sur\nl\'avifaune présente à Lorient</string> + <string name="tuto_page_app">Sur la page Apprendre</string> + <string name="tuto_end">C\'est parti</string> </resources> \ No newline at end of file