Swati4star/Images-to-PDF

View on GitHub
app/src/main/java/swati4star/createpdf/activity/FavouritesActivity.java

Summary

Maintainability
A
0 mins
Test Coverage
package swati4star.createpdf.activity;

import static swati4star.createpdf.util.Constants.ADD_IMAGES_KEY;
import static swati4star.createpdf.util.Constants.ADD_PASSWORD_KEY;
import static swati4star.createpdf.util.Constants.ADD_WATERMARK_KEY;
import static swati4star.createpdf.util.Constants.COMPRESS_PDF_KEY;
import static swati4star.createpdf.util.Constants.EXCEL_TO_PDF_KEY;
import static swati4star.createpdf.util.Constants.EXTRACT_IMAGES_KEY;
import static swati4star.createpdf.util.Constants.HISTORY_KEY;
import static swati4star.createpdf.util.Constants.IMAGE_TO_PDF_KEY;
import static swati4star.createpdf.util.Constants.INVERT_PDF_KEY;
import static swati4star.createpdf.util.Constants.MERGE_PDF_KEY;
import static swati4star.createpdf.util.Constants.PDF_TO_IMAGES_KEY;
import static swati4star.createpdf.util.Constants.QR_BARCODE_KEY;
import static swati4star.createpdf.util.Constants.REMOVE_DUPLICATE_PAGES_KEY;
import static swati4star.createpdf.util.Constants.REMOVE_PAGES_KEY;
import static swati4star.createpdf.util.Constants.REMOVE_PASSWORD_KEY;
import static swati4star.createpdf.util.Constants.REORDER_PAGES_KEY;
import static swati4star.createpdf.util.Constants.ROTATE_PAGES_KEY;
import static swati4star.createpdf.util.Constants.SPLIT_PDF_KEY;
import static swati4star.createpdf.util.Constants.TEXT_TO_PDF_KEY;
import static swati4star.createpdf.util.Constants.VIEW_FILES_KEY;
import static swati4star.createpdf.util.Constants.ZIP_TO_PDF_KEY;

import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.preference.PreferenceManager;

import java.util.Objects;

import swati4star.createpdf.R;

public class FavouritesActivity extends AppCompatActivity {

    private final boolean[] mKeyState = new boolean[21];
    private SharedPreferences mSharedPreferences;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setTitle(R.string.add_to_favourite);
        mSharedPreferences = PreferenceManager
                .getDefaultSharedPreferences(this);
        setContentView(R.layout.fav_pref_screen);

        storeInitialState();

        Toolbar toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        Objects.requireNonNull(getSupportActionBar()).setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setDisplayShowHomeEnabled(true);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_favourite_pref_done, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:
                onBackPressed();
                return true;
            case R.id.fav_action_done:
                super.onBackPressed();
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }

    @Override
    public void onBackPressed() {
        onBackPressedState();
        super.onBackPressed();
    }

    /**
     * store the initial state of checkbox before
     * the user make new changes
     */
    private void storeInitialState() {
        mKeyState[0] = mSharedPreferences.getBoolean(IMAGE_TO_PDF_KEY, false);
        mKeyState[1] = mSharedPreferences.getBoolean(TEXT_TO_PDF_KEY, false);
        mKeyState[2] = mSharedPreferences.getBoolean(QR_BARCODE_KEY, false);
        mKeyState[3] = mSharedPreferences.getBoolean(VIEW_FILES_KEY, false);
        mKeyState[4] = mSharedPreferences.getBoolean(HISTORY_KEY, false);
        mKeyState[5] = mSharedPreferences.getBoolean(ADD_PASSWORD_KEY, false);
        mKeyState[6] = mSharedPreferences.getBoolean(REMOVE_PASSWORD_KEY, false);
        mKeyState[7] = mSharedPreferences.getBoolean(ROTATE_PAGES_KEY, false);
        mKeyState[8] = mSharedPreferences.getBoolean(ADD_WATERMARK_KEY, false);
        mKeyState[9] = mSharedPreferences.getBoolean(ADD_IMAGES_KEY, false);
        mKeyState[10] = mSharedPreferences.getBoolean(MERGE_PDF_KEY, false);
        mKeyState[11] = mSharedPreferences.getBoolean(SPLIT_PDF_KEY, false);
        mKeyState[12] = mSharedPreferences.getBoolean(INVERT_PDF_KEY, false);
        mKeyState[13] = mSharedPreferences.getBoolean(COMPRESS_PDF_KEY, false);
        mKeyState[14] = mSharedPreferences.getBoolean(REMOVE_DUPLICATE_PAGES_KEY, false);
        mKeyState[15] = mSharedPreferences.getBoolean(REMOVE_PAGES_KEY, false);
        mKeyState[16] = mSharedPreferences.getBoolean(REORDER_PAGES_KEY, false);
        mKeyState[17] = mSharedPreferences.getBoolean(EXTRACT_IMAGES_KEY, false);
        mKeyState[18] = mSharedPreferences.getBoolean(PDF_TO_IMAGES_KEY, false);
        mKeyState[19] = mSharedPreferences.getBoolean(EXCEL_TO_PDF_KEY, false);
        mKeyState[20] = mSharedPreferences.getBoolean(ZIP_TO_PDF_KEY, false);
    }

    /**
     * Restore the initial state if user
     * press the back button
     */
    private void onBackPressedState() {
        mSharedPreferences.edit().putBoolean(IMAGE_TO_PDF_KEY, mKeyState[0]).apply();
        mSharedPreferences.edit().putBoolean(TEXT_TO_PDF_KEY, mKeyState[1]).apply();
        mSharedPreferences.edit().putBoolean(QR_BARCODE_KEY, mKeyState[2]).apply();
        mSharedPreferences.edit().putBoolean(VIEW_FILES_KEY, mKeyState[3]).apply();
        mSharedPreferences.edit().putBoolean(HISTORY_KEY, mKeyState[4]).apply();
        mSharedPreferences.edit().putBoolean(ADD_PASSWORD_KEY, mKeyState[5]).apply();
        mSharedPreferences.edit().putBoolean(REMOVE_PASSWORD_KEY, mKeyState[6]).apply();
        mSharedPreferences.edit().putBoolean(ROTATE_PAGES_KEY, mKeyState[7]).apply();
        mSharedPreferences.edit().putBoolean(ADD_WATERMARK_KEY, mKeyState[8]).apply();
        mSharedPreferences.edit().putBoolean(ADD_IMAGES_KEY, mKeyState[9]).apply();
        mSharedPreferences.edit().putBoolean(MERGE_PDF_KEY, mKeyState[10]).apply();
        mSharedPreferences.edit().putBoolean(SPLIT_PDF_KEY, mKeyState[11]).apply();
        mSharedPreferences.edit().putBoolean(INVERT_PDF_KEY, mKeyState[12]).apply();
        mSharedPreferences.edit().putBoolean(COMPRESS_PDF_KEY, mKeyState[13]).apply();
        mSharedPreferences.edit().putBoolean(REMOVE_DUPLICATE_PAGES_KEY, mKeyState[14]).apply();
        mSharedPreferences.edit().putBoolean(REMOVE_PAGES_KEY, mKeyState[15]).apply();
        mSharedPreferences.edit().putBoolean(REORDER_PAGES_KEY, mKeyState[16]).apply();
        mSharedPreferences.edit().putBoolean(EXTRACT_IMAGES_KEY, mKeyState[17]).apply();
        mSharedPreferences.edit().putBoolean(PDF_TO_IMAGES_KEY, mKeyState[18]).apply();
        mSharedPreferences.edit().putBoolean(EXCEL_TO_PDF_KEY, mKeyState[19]).apply();
        mSharedPreferences.edit().putBoolean(ZIP_TO_PDF_KEY, mKeyState[20]).apply();
    }
}