Added comments and summaries to MainActivity.java and changed variable names
This commit is contained in:
parent
ab6c021c1c
commit
e1636754fd
|
@ -2,86 +2,119 @@ package com.MartyrPher.smapiandroidinstaller;
|
||||||
|
|
||||||
import android.Manifest;
|
import android.Manifest;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
|
import android.os.Environment;
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
|
import android.support.design.widget.TabLayout;
|
||||||
import android.support.v4.app.ActivityCompat;
|
import android.support.v4.app.ActivityCompat;
|
||||||
import android.support.v4.content.ContextCompat;
|
import android.support.v4.content.ContextCompat;
|
||||||
|
import android.support.v4.view.ViewPager;
|
||||||
import android.support.v7.app.AppCompatActivity;
|
import android.support.v7.app.AppCompatActivity;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.view.View;
|
import android.util.Log;
|
||||||
import android.widget.Button;
|
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileOutputStream;
|
||||||
|
|
||||||
public class MainActivity extends AppCompatActivity {
|
public class MainActivity extends AppCompatActivity {
|
||||||
|
|
||||||
|
//Tag used for debugging
|
||||||
private static final String TAG = "MainActivity";
|
private static final String TAG = "MainActivity";
|
||||||
|
|
||||||
private static final int MY_PERMISSION_REQUEST_STORAGE = 2;
|
//Override int for onRequestionPermssionResult to ensure the right permssion
|
||||||
|
private static final int PERMISSION_REQUEST_STORAGE = 2;
|
||||||
|
|
||||||
private boolean hasPermissions = false;
|
//Whether the user has permissions
|
||||||
|
public static boolean mHasPermissions = false;
|
||||||
|
|
||||||
|
//Whether ConfigEditorFragment has found the mods in the mod folder
|
||||||
|
public static boolean mHasFoundMods = false;
|
||||||
|
|
||||||
|
//TabAdapter to allow changes to the tabs
|
||||||
|
private TabAdapter mTabAdapter;
|
||||||
|
|
||||||
|
//TabLayout to control the tabs at the top of the screen
|
||||||
|
private TabLayout mTabLayout;
|
||||||
|
|
||||||
|
//ViewPager that allows switching between fragments
|
||||||
|
private ViewPager mViewPager;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Override that create the initial view and sets up the layout
|
||||||
|
* @param savedInstanceState = The savedInstanceState
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(final Bundle savedInstanceState) {
|
protected void onCreate(final Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
try {
|
||||||
setContentView(R.layout.activity_main);
|
super.onCreate(savedInstanceState);
|
||||||
|
setContentView(R.layout.view_pager);
|
||||||
|
|
||||||
requestPermissions();
|
//Find the ViewPager and TabLayout ids
|
||||||
|
mViewPager = findViewById(R.id.view_pager);
|
||||||
|
mTabLayout = findViewById(R.id.tab_layout);
|
||||||
|
|
||||||
final Button start_button = findViewById(R.id.start_button);
|
//Get the fragment manager and add the fragments
|
||||||
start_button.setOnClickListener(new View.OnClickListener() {
|
mTabAdapter = new TabAdapter(getSupportFragmentManager());
|
||||||
@Override
|
if (mTabAdapter.getCount() < 1)
|
||||||
public void onClick(View v) {
|
{
|
||||||
start_button.setBackgroundColor(getResources().getColor(R.color.colorAccent));
|
mTabAdapter.addFragment(new InstallFragment(), "Install");
|
||||||
if (hasPermissions)
|
mTabAdapter.addFragment(new ConfigEditorFragment(), "Configs");
|
||||||
{
|
|
||||||
boolean[] foundGame;
|
|
||||||
ApkExtractor apkExtractor = new ApkExtractor(MainActivity.this);
|
|
||||||
|
|
||||||
foundGame = apkExtractor.checkForInstallOrUpgrade();
|
|
||||||
|
|
||||||
if(foundGame[1] || foundGame[2])
|
|
||||||
{
|
|
||||||
BackgroundTask backgroundTask = new BackgroundTask(MainActivity.this, apkExtractor, foundGame[0]);
|
|
||||||
backgroundTask.execute();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
DialogFrag.showDialog(MainActivity.this, R.string.cant_find, 1);
|
|
||||||
start_button.setBackgroundColor(getResources().getColor(R.color.colorPrimary));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
requestPermissions();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
|
||||||
|
//Setup the ViewPager adapter and TabLayout with ViewPager
|
||||||
|
mViewPager.setAdapter(mTabAdapter);
|
||||||
|
mTabLayout.setupWithViewPager(mViewPager);
|
||||||
|
|
||||||
|
//Request the permissions for storage access
|
||||||
|
requestPermissions();
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
//Try to log a crash in onCreate()
|
||||||
|
File logFile = new File(Environment.getExternalStorageDirectory() + "/SMAPI Installer/crash.txt");
|
||||||
|
try {
|
||||||
|
FileOutputStream stream = new FileOutputStream(logFile);
|
||||||
|
stream.write(e.getMessage().getBytes());
|
||||||
|
stream.close();
|
||||||
|
}
|
||||||
|
catch(Exception er)
|
||||||
|
{
|
||||||
|
Log.e(TAG, er.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
//Request permissions to be able to read/write external storage
|
* Request permissions to be able to read/write external storage
|
||||||
|
*/
|
||||||
public void requestPermissions()
|
public void requestPermissions()
|
||||||
{
|
{
|
||||||
if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.READ_EXTERNAL_STORAGE)
|
if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.READ_EXTERNAL_STORAGE)
|
||||||
!= PackageManager.PERMISSION_GRANTED) {
|
!= PackageManager.PERMISSION_GRANTED) {
|
||||||
ActivityCompat.requestPermissions(MainActivity.this,
|
ActivityCompat.requestPermissions(MainActivity.this,
|
||||||
new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE},
|
new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE},
|
||||||
MY_PERMISSION_REQUEST_STORAGE);
|
PERMISSION_REQUEST_STORAGE);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
hasPermissions = true;
|
mHasPermissions = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Override to handle the result of the permission request
|
||||||
|
* @param requestCode = The request code
|
||||||
|
* @param permissions = An array of Strings for needed permissions
|
||||||
|
* @param grantResults = The results of the permissions
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
|
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
|
||||||
switch(requestCode)
|
switch(requestCode)
|
||||||
{
|
{
|
||||||
case MY_PERMISSION_REQUEST_STORAGE:
|
case PERMISSION_REQUEST_STORAGE:
|
||||||
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED)
|
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED)
|
||||||
{
|
{
|
||||||
hasPermissions = true;
|
mHasPermissions = true;
|
||||||
Toast.makeText(this, R.string.permission, Toast.LENGTH_SHORT).show();
|
Toast.makeText(this, R.string.permission, Toast.LENGTH_SHORT).show();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue