Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added Favourites section #607

Merged
merged 7 commits into from
Mar 10, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ dependencies {
implementation 'com.android.support:recyclerview-v7:28.0.0'
implementation 'com.android.support:cardview-v7:28.0.0'
implementation 'com.android.support:support-v4:28.0.0'
implementation 'com.android.support:preference-v7:28.0.0'

// butterknife
implementation 'com.jakewharton:butterknife:8.8.1'
Expand Down
1 change: 1 addition & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@
<activity android:name=".activity.RearrangeImages" />
<activity android:name=".activity.ImagesPreviewActivity" />
<activity android:name=".activity.RearrangePdfPages" />
<activity android:name=".activity.FavouritesActivity"/>

</application>

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package swati4star.createpdf.activity;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;

import swati4star.createpdf.R;

public class FavouritesActivity extends AppCompatActivity {

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fav_pref_screen);
}
}
27 changes: 27 additions & 0 deletions app/src/main/java/swati4star/createpdf/activity/MainActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,12 @@
import android.support.v4.content.ContextCompat;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.Toast;

Expand All @@ -28,6 +31,7 @@
import swati4star.createpdf.R;
import swati4star.createpdf.fragment.AboutUsFragment;
import swati4star.createpdf.fragment.AddImagesFragment;
import swati4star.createpdf.fragment.FavouritesFragment;
import swati4star.createpdf.fragment.HistoryFragment;
import swati4star.createpdf.fragment.HomeFragment;
import swati4star.createpdf.fragment.ImageToPdfFragment;
Expand Down Expand Up @@ -128,6 +132,29 @@ protected void onCreate(Bundle savedInstanceState) {
openWelcomeActivity();
}

@Override
protected void onResume() {
super.onResume();
ActionBar actionBar = getSupportActionBar();
actionBar.show();
}

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

@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == R.id.menu_favourites_item) {
Fragment fragment = new FavouritesFragment();
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction().replace(R.id.content, fragment).commit();
}
return super.onOptionsItemSelected(item);
}

/**
* if welcome activity isnt opened ever, it is shown
*/
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
package swati4star.createpdf.fragment;

import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.design.widget.FloatingActionButton;
import android.support.v4.app.Fragment;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.preference.PreferenceManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import butterknife.BindView;
import butterknife.ButterKnife;
import swati4star.createpdf.R;
import swati4star.createpdf.activity.FavouritesActivity;
import swati4star.createpdf.customviews.MyCardView;

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.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.TEXT_TO_PDF_KEY;
import static swati4star.createpdf.util.Constants.VIEW_FILES_KEY;

public class FavouritesFragment extends Fragment
implements SharedPreferences.OnSharedPreferenceChangeListener {
private SharedPreferences mSharedpreferences;

@BindView(R.id.fav_add_fab)
FloatingActionButton mFab;
@BindView(R.id.images_to_pdf_fav)
MyCardView pref_img_to_pdf;
@BindView(R.id.text_to_pdf_fav)
MyCardView pref_text_to_pdf;
@BindView(R.id.qr_barcode_to_pdf_fav)
MyCardView pref_qr_barcode;
@BindView(R.id.view_files_fav)
MyCardView pref_view_files;
@BindView(R.id.view_history_fav)
MyCardView pref_history;
@BindView(R.id.add_password_fav)
MyCardView pref_add_password;
@BindView(R.id.remove_password_fav)
MyCardView pref_rem_pass;
@BindView(R.id.rotate_pages_fav)
MyCardView pref_rot_pages;
@BindView(R.id.add_watermark_fav)
MyCardView pref_add_watermark;
@BindView(R.id.add_images_fav)
MyCardView pref_add_images;
@BindView(R.id.merge_pdf_fav)
MyCardView pref_merge_pdf;
@BindView(R.id.split_pdf_fav)
MyCardView pref_split_pdf;
@BindView(R.id.invert_pdf_fav)
MyCardView pref_invert_pdf;
@BindView(R.id.compress_pdf_fav)
MyCardView pref_compress;
@BindView(R.id.remove_duplicates_pages_pdf_fav)
MyCardView pref_rem_dup_pages;
@BindView(R.id.remove_pages_fav)
MyCardView pref_remove_pages;
@BindView(R.id.rearrange_pages_fav)
MyCardView pref_reorder_pages;
@BindView(R.id.extract_images_fav)
MyCardView pref_extract_img;
@BindView(R.id.pdf_to_images_fav)
MyCardView pref_pdf_to_img;

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootview = inflater.inflate(R.layout.favourites_fragment, container, false);
ButterKnife.bind(this, rootview);
mSharedpreferences = PreferenceManager
.getDefaultSharedPreferences(getActivity());
mSharedpreferences.registerOnSharedPreferenceChangeListener(this);
ActionBar actionBar = ((AppCompatActivity) getActivity()).getSupportActionBar();
actionBar.hide();
mFab.setOnClickListener(v ->
startActivity(new Intent(this.getContext(), FavouritesActivity.class))
);
return rootview;
}

/**
* This method checks for the favourites from preferences list
* and passes them to another method for dealing with the required view.
* @param sharedPreferences
*/
private void checkFavs(SharedPreferences sharedPreferences) {
// assigned due to onSharedPreferenceChanged
mSharedpreferences = sharedPreferences;
viewVisibility(pref_img_to_pdf, IMAGE_TO_PDF_KEY);
viewVisibility(pref_text_to_pdf, TEXT_TO_PDF_KEY);
viewVisibility(pref_qr_barcode, QR_BARCODE_KEY);
viewVisibility(pref_view_files, VIEW_FILES_KEY);
viewVisibility(pref_history, HISTORY_KEY);
viewVisibility(pref_add_password, ADD_PASSWORD_KEY);
viewVisibility(pref_rem_pass, REMOVE_PASSWORD_KEY);
viewVisibility(pref_rot_pages, ROTATE_PAGES_KEY);
viewVisibility(pref_add_watermark, ADD_WATERMARK_KEY);
viewVisibility(pref_add_images, ADD_IMAGES_KEY);
viewVisibility(pref_merge_pdf, MERGE_PDF_KEY);
viewVisibility(pref_invert_pdf, INVERT_PDF_KEY);
viewVisibility(pref_compress, COMPRESS_PDF_KEY);
viewVisibility(pref_rem_dup_pages, REMOVE_DUPLICATE_PAGES_KEY);
viewVisibility(pref_remove_pages, REMOVE_PAGES_KEY);
viewVisibility(pref_reorder_pages, REORDER_PAGES_KEY);
viewVisibility(pref_extract_img, EXTRACT_IMAGES_KEY);
viewVisibility(pref_pdf_to_img, PDF_TO_IMAGES_KEY);
}

/**
* This method toggles the visibility of the passed view.
* @param view
* @param id
*/
private void viewVisibility(View view, String id) {
if (mSharedpreferences.getBoolean(id, false)) {
view.setVisibility(View.VISIBLE);
} else {
view.setVisibility(View.GONE);
}
}

@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
checkFavs(sharedPreferences);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package swati4star.createpdf.fragment;


import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v7.preference.PreferenceFragmentCompat;

import swati4star.createpdf.R;

public class FavouritesPref extends PreferenceFragmentCompat
implements SharedPreferences.OnSharedPreferenceChangeListener {

@Override
public void onCreatePreferences(Bundle bundle, String s) {
addPreferencesFromResource(R.xml.favourites_preferences);
}

@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
}

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getPreferenceScreen().getSharedPreferences()
.registerOnSharedPreferenceChangeListener(this);
}

@Override
public void onDestroyView() {
super.onDestroyView();
getPreferenceScreen().getSharedPreferences()
.unregisterOnSharedPreferenceChangeListener(this);
}
}
19 changes: 19 additions & 0 deletions app/src/main/java/swati4star/createpdf/util/Constants.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,25 @@ public class Constants {
public static final String PG_NUM_STYLE_X = "pg_num_style_x";
public static final String MASTER_PWD_STRING = "master_password";

public static final String IMAGE_TO_PDF_KEY = "Images to PDF";
public static final String TEXT_TO_PDF_KEY = "Text to PDF";
public static final String QR_BARCODE_KEY = "QR & Barcodes";
public static final String VIEW_FILES_KEY = "View Files";
public static final String HISTORY_KEY = "History";
public static final String ADD_PASSWORD_KEY = "Add password";
public static final String REMOVE_PASSWORD_KEY = "Remove password";
public static final String ROTATE_PAGES_KEY = "Rotate Pages";
public static final String ADD_WATERMARK_KEY = "Add Watermark";
public static final String ADD_IMAGES_KEY = "Add Images";
public static final String MERGE_PDF_KEY = "Merge PDF";
public static final String INVERT_PDF_KEY = "Invert Pdf";
public static final String COMPRESS_PDF_KEY = "Compress PDF";
public static final String REMOVE_DUPLICATE_PAGES_KEY = "Remove Duplicate Pages";
public static final String REMOVE_PAGES_KEY = "Remove Pages";
public static final String REORDER_PAGES_KEY = "Reorder pages";
public static final String EXTRACT_IMAGES_KEY = "Extract Images";
public static final String PDF_TO_IMAGES_KEY = "PDF to Images";

public static final String BUNDLE_DATA = "bundle_data";
public static final String REORDER_PAGES = "reorder_pages";
public static final String REMOVE_PAGES = "remove_pages";
Expand Down
9 changes: 9 additions & 0 deletions app/src/main/res/drawable/ic_favorite_white_24dp.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FFFFFFFF"
android:pathData="M12,21.35l-1.45,-1.32C5.4,15.36 2,12.28 2,8.5 2,5.42 4.42,3 7.5,3c1.74,0 3.41,0.81 4.5,2.09C13.09,3.81 14.76,3 16.5,3 19.58,3 22,5.42 22,8.5c0,3.78 -3.4,6.86 -8.55,11.54L12,21.35z"/>
</vector>
7 changes: 7 additions & 0 deletions app/src/main/res/layout/fav_pref_screen.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<fragment android:id="@+id/activity_settings"
android:name="swati4star.createpdf.fragment.FavouritesPref"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
xmlns:android="http://schemas.android.com/apk/res/android" />
Loading