diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index bd0d1645..77796892 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -25,7 +25,7 @@
android:name=".activities.SettingsActivity"
android:exported="false" />
@@ -33,10 +33,6 @@
-
-
diff --git a/app/src/main/java/in/hridayan/ashell/activities/aShellActivity.java b/app/src/main/java/in/hridayan/ashell/activities/MainActivity.java
similarity index 91%
rename from app/src/main/java/in/hridayan/ashell/activities/aShellActivity.java
rename to app/src/main/java/in/hridayan/ashell/activities/MainActivity.java
index b938b9e1..cfe443ef 100644
--- a/app/src/main/java/in/hridayan/ashell/activities/aShellActivity.java
+++ b/app/src/main/java/in/hridayan/ashell/activities/MainActivity.java
@@ -13,10 +13,11 @@
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import in.hridayan.ashell.R;
import in.hridayan.ashell.UI.KeyboardVisibilityChecker;
+import in.hridayan.ashell.fragments.StartFragment;
import in.hridayan.ashell.fragments.aShellFragment;
import in.hridayan.ashell.fragments.otgFragment;
-public class aShellActivity extends AppCompatActivity {
+public class MainActivity extends AppCompatActivity {
private boolean isKeyboardVisible;
public BottomNavigationView mNav;
@@ -77,8 +78,8 @@ private void setupNavigation() {
return false;
}
});
- // Set initial fragment
- replaceFragment(new aShellFragment(mNav));
+
+ initialFragment();
}
private void replaceFragment(Fragment fragment) {
@@ -143,4 +144,13 @@ private void setBadge(int id, String text) {
badge.setText(text);
badge.setHorizontalOffset(0);
}
+
+ private void initialFragment() {
+ if (PreferenceManager.getDefaultSharedPreferences(this).getBoolean("firstLaunch", true)) {
+ mNav.setVisibility(View.GONE);
+ replaceFragment(new StartFragment());
+ } else {
+ replaceFragment(new aShellFragment(mNav));
+ }
+ }
}
diff --git a/app/src/main/java/in/hridayan/ashell/activities/StartActivity.java b/app/src/main/java/in/hridayan/ashell/activities/StartActivity.java
deleted file mode 100644
index b52dd070..00000000
--- a/app/src/main/java/in/hridayan/ashell/activities/StartActivity.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Copyright (C) 2021-2022 sunilpaulmathew
- *
- * This file is part of Package Manager, a simple, yet powerful application
- * to manage other application installed on an android device.
- *
- */
-
-package in.hridayan.ashell.activities;
-
-import android.annotation.SuppressLint;
-import android.app.Activity;
-import android.content.Intent;
-import android.graphics.Color;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Looper;
-import android.view.View;
-import com.google.android.material.button.MaterialButton;
-import androidx.appcompat.app.AppCompatActivity;
-import androidx.appcompat.widget.LinearLayoutCompat;
-import androidx.preference.PreferenceManager;
-import com.google.android.material.textview.MaterialTextView;
-import in.hridayan.ashell.R;
-
-import in.hridayan.ashell.utils.Commands;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import rikka.shizuku.Shizuku;
-
-/*
- * Created by sunilpaulmathew on October 28, 2022
- */
-public class StartActivity extends AppCompatActivity {
-
- @SuppressLint("SetTextI18n")
- @Override
- protected void onCreate(Bundle savedInstanceState) {
-
- super.onCreate(savedInstanceState);
-
- setContentView(in.hridayan.ashell.R.layout.activity_start);
-
- int statusBarColor = getColor(R.color.StatusBar);
- double brightness = Color.luminance(statusBarColor);
- boolean isLightStatusBar = brightness > 0.5;
-
- View decorView = getWindow().getDecorView();
- if (isLightStatusBar) {
- decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
- }
-
- LinearLayoutCompat mMainLayout = findViewById(R.id.layout_main);
- MaterialButton mStartButton = findViewById(R.id.start_button);
- MaterialTextView mAboutText = findViewById(R.id.about_text);
-
- if (PreferenceManager.getDefaultSharedPreferences(this).getBoolean("firstLaunch", true)) {
- if (Shizuku.pingBinder()) {
- Shizuku.requestPermission(0);
- }
- mMainLayout.setVisibility(View.VISIBLE);
- mAboutText.setText(getString(R.string.app_summary));
- } else {
- loadUI(this);
- }
-
- mStartButton.setOnClickListener(
- v -> {
- PreferenceManager.getDefaultSharedPreferences(this)
- .edit()
- .putBoolean("firstLaunch", false)
- .apply();
- loadUI(this);
- });
- }
-
- private static void loadUI(Activity activity) {
- ExecutorService mExecutors = Executors.newSingleThreadExecutor();
- mExecutors.execute(
- () -> {
- Commands.loadPackageInfo();
- new Handler(Looper.getMainLooper())
- .post(
- () -> {
- Intent aShellActivity = new Intent(activity, aShellActivity.class);
- activity.startActivity(aShellActivity);
- activity.finish();
- });
- if (!mExecutors.isShutdown()) mExecutors.shutdown();
- });
- }
-}
diff --git a/app/src/main/java/in/hridayan/ashell/fragments/StartFragment.java b/app/src/main/java/in/hridayan/ashell/fragments/StartFragment.java
new file mode 100644
index 00000000..b3acd171
--- /dev/null
+++ b/app/src/main/java/in/hridayan/ashell/fragments/StartFragment.java
@@ -0,0 +1,51 @@
+package in.hridayan.ashell.fragments;
+
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import androidx.appcompat.widget.LinearLayoutCompat;
+import androidx.fragment.app.Fragment;
+import androidx.preference.PreferenceManager;
+import com.google.android.material.bottomnavigation.BottomNavigationView;
+import com.google.android.material.button.MaterialButton;
+import com.google.android.material.textview.MaterialTextView;
+import in.hridayan.ashell.R;
+import rikka.shizuku.Shizuku;
+
+public class StartFragment extends Fragment {
+
+ public StartFragment() {}
+
+ @Override
+ public View onCreateView(
+ LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ View view = inflater.inflate(R.layout.fragment_start, container, false);
+ initViews(view);
+ return view;
+ }
+
+ private void initViews(View view) {
+ LinearLayoutCompat mStartLayout = view.findViewById(R.id.fragment_start);
+ MaterialButton mStartButton = view.findViewById(R.id.start_button);
+ MaterialTextView mAboutText = view.findViewById(R.id.about_text);
+
+ if (Shizuku.pingBinder()) {
+ Shizuku.requestPermission(0);
+ }
+ mStartLayout.setVisibility(View.VISIBLE);
+ mAboutText.setText(getString(R.string.app_summary));
+
+ mStartButton.setOnClickListener(
+ v -> {
+ PreferenceManager.getDefaultSharedPreferences(requireContext())
+ .edit()
+ .putBoolean("firstLaunch", false)
+ .apply();
+ getParentFragmentManager()
+ .beginTransaction()
+ .replace(R.id.fragment_container, new aShellFragment())
+ .commit();
+ });
+ }
+}
diff --git a/app/src/main/java/in/hridayan/ashell/fragments/aShellFragment.java b/app/src/main/java/in/hridayan/ashell/fragments/aShellFragment.java
index f468078c..32235ab1 100644
--- a/app/src/main/java/in/hridayan/ashell/fragments/aShellFragment.java
+++ b/app/src/main/java/in/hridayan/ashell/fragments/aShellFragment.java
@@ -53,7 +53,7 @@
import in.hridayan.ashell.activities.FabOnScrollDownListener;
import in.hridayan.ashell.activities.FabOnScrollUpListener;
import in.hridayan.ashell.activities.SettingsActivity;
-import in.hridayan.ashell.activities.aShellActivity;
+import in.hridayan.ashell.activities.MainActivity;
import in.hridayan.ashell.adapters.CommandsAdapter;
import in.hridayan.ashell.adapters.SettingsAdapter;
import in.hridayan.ashell.adapters.ShellOutputAdapter;
@@ -191,6 +191,8 @@ public void onKeyboardVisibilityChanged(boolean visible) {
mRecyclerViewOutput.setAdapter(mShellOutputAdapter);
+ mNav.setVisibility(View.VISIBLE);
+
/*------------------------------------------------------*/
mPasteButton.setOnClickListener(
@@ -1026,8 +1028,8 @@ public double getBrightness(int color) {
/*------------------------------------------------------*/
private void showBottomNav() {
- if (getActivity() != null && getActivity() instanceof aShellActivity) {
- ((aShellActivity) getActivity()).mNav.animate().translationY(0);
+ if (getActivity() != null && getActivity() instanceof MainActivity) {
+ ((MainActivity) getActivity()).mNav.animate().translationY(0);
}
}
diff --git a/app/src/main/res/layout/activity_ashell.xml b/app/src/main/res/layout/activity_ashell.xml
index 04414c24..2bd6e69c 100644
--- a/app/src/main/res/layout/activity_ashell.xml
+++ b/app/src/main/res/layout/activity_ashell.xml
@@ -7,7 +7,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_height="match_parent"
android:layout_width="match_parent"
- tools:context=".aShellActivity">
+ tools:context=".MainActivity">
+ tools:context=".MainActivity">