diff --git a/app/src/main/java/eu/faircode/email/ActivityBase.java b/app/src/main/java/eu/faircode/email/ActivityBase.java
index 8dfc01d9..ba07c74f 100644
--- a/app/src/main/java/eu/faircode/email/ActivityBase.java
+++ b/app/src/main/java/eu/faircode/email/ActivityBase.java
@@ -17,6 +17,7 @@ package eu.faircode.email;
along with FairEmail. If not, see .
Copyright 2018 by Marcel Bokhorst (M66B)
+ Copyright 2019 by Distopico
*/
import android.content.SharedPreferences;
@@ -35,7 +36,7 @@ abstract class ActivityBase extends AppCompatActivity implements SharedPreferenc
protected void onCreate(Bundle savedInstanceState) {
Log.i(Helper.TAG, "Create " + this.getClass().getName() + " version=" + BuildConfig.VERSION_NAME);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
- String theme = (Helper.isPro(this) ? prefs.getString("theme", "light") : "light");
+ String theme = prefs.getString("theme", "light");
setTheme("light".equals(theme) ? R.style.AppThemeLight : R.style.AppThemeDark);
prefs.registerOnSharedPreferenceChangeListener(this);
super.onCreate(savedInstanceState);
diff --git a/app/src/main/java/eu/faircode/email/ActivityView.java b/app/src/main/java/eu/faircode/email/ActivityView.java
index 63d39d06..d88740cd 100644
--- a/app/src/main/java/eu/faircode/email/ActivityView.java
+++ b/app/src/main/java/eu/faircode/email/ActivityView.java
@@ -17,6 +17,7 @@ package eu.faircode.email;
along with FairEmail. If not, see .
Copyright 2018 by Marcel Bokhorst (M66B)
+ Copyright 2019 by Distopico
*/
import android.app.Activity;
@@ -117,7 +118,6 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
static final String ACTION_EDIT_ANSWER = BuildConfig.APPLICATION_ID + ".EDIT_ANSWER";
static final String ACTION_STORE_ATTACHMENT = BuildConfig.APPLICATION_ID + ".STORE_ATTACHMENT";
static final String ACTION_DECRYPT = BuildConfig.APPLICATION_ID + ".DECRYPT";
- static final String ACTION_SHOW_PRO = BuildConfig.APPLICATION_ID + ".SHOW_PRO";
static final String UPDATE_LATEST_API = "https://api.github.com/repos/M66B/open-source-email/releases/latest";
static final long UPDATE_INTERVAL = 12 * 3600 * 1000L; // milliseconds
@@ -172,9 +172,6 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
case R.string.menu_faq:
onMenuFAQ();
break;
- case R.string.menu_pro:
- onMenuPro();
- break;
case R.string.menu_privacy:
onMenuPrivacy();
break;
@@ -313,7 +310,6 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
iff.addAction(ACTION_EDIT_ANSWER);
iff.addAction(ACTION_STORE_ATTACHMENT);
iff.addAction(ACTION_DECRYPT);
- iff.addAction(ACTION_SHOW_PRO);
lbm.registerReceiver(receiver, iff);
if (!pgpService.isBound())
@@ -339,48 +335,43 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
intent.removeExtra(Intent.EXTRA_PROCESS_TEXT);
setIntent(intent);
- if (Helper.isPro(this)) {
- Bundle args = new Bundle();
- args.putString("search", search);
+ Bundle args = new Bundle();
+ args.putString("search", search);
- new SimpleTask() {
- @Override
- protected Long onLoad(Context context, Bundle args) {
- DB db = DB.getInstance(context);
+ new SimpleTask() {
+ @Override
+ protected Long onLoad(Context context, Bundle args) {
+ DB db = DB.getInstance(context);
- EntityFolder archive = db.folder().getPrimaryArchive();
- if (archive == null)
- throw new IllegalArgumentException(getString(R.string.title_no_primary_archive));
+ EntityFolder archive = db.folder().getPrimaryArchive();
+ if (archive == null) {
+ throw new IllegalArgumentException(getString(R.string.title_no_primary_archive));
+ }
- db.message().deleteFoundMessages();
+ db.message().deleteFoundMessages();
- return archive.id;
- }
+ return archive.id;
+ }
- @Override
- protected void onLoaded(Bundle args, Long archive) {
- Bundle sargs = new Bundle();
- sargs.putLong("folder", archive);
- sargs.putString("search", args.getString("search"));
+ @Override
+ protected void onLoaded(Bundle args, Long archive) {
+ Bundle sargs = new Bundle();
+ sargs.putLong("folder", archive);
+ sargs.putString("search", args.getString("search"));
- FragmentMessages fragment = new FragmentMessages();
- fragment.setArguments(sargs);
+ FragmentMessages fragment = new FragmentMessages();
+ fragment.setArguments(sargs);
- FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
- fragmentTransaction.replace(R.id.content_frame, fragment).addToBackStack("search");
- fragmentTransaction.commit();
- }
+ FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
+ fragmentTransaction.replace(R.id.content_frame, fragment).addToBackStack("search");
+ fragmentTransaction.commit();
+ }
- @Override
- protected void onException(Bundle args, Throwable ex) {
- Helper.unexpectedError(ActivityView.this, ex);
- }
- }.load(this, args);
- } else {
- FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
- fragmentTransaction.replace(R.id.content_frame, new FragmentPro()).addToBackStack("pro");
- fragmentTransaction.commit();
- }
+ @Override
+ protected void onException(Bundle args, Throwable ex) {
+ Helper.unexpectedError(ActivityView.this, ex);
+ }
+ }.load(this, args);
}
}
@@ -712,12 +703,6 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
Helper.view(this, getIntentFAQ());
}
- private void onMenuPro() {
- FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
- fragmentTransaction.replace(R.id.content_frame, new FragmentPro()).addToBackStack("pro");
- fragmentTransaction.commit();
- }
-
private void onMenuPrivacy() {
Helper.view(this, Helper.getIntentPrivacy());
}
@@ -833,8 +818,6 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
onStoreAttachment(intent);
else if (ACTION_DECRYPT.equals(intent.getAction()))
onDecrypt(intent);
- else if (ACTION_SHOW_PRO.equals(intent.getAction()))
- onShowPro(intent);
}
};
@@ -901,33 +884,25 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
}
private void onDecrypt(Intent intent) {
- if (Helper.isPro(this)) {
- if (pgpService.isBound()) {
- Intent data = new Intent();
- data.setAction(OpenPgpApi.ACTION_DECRYPT_VERIFY);
- data.putExtra(OpenPgpApi.EXTRA_USER_IDS, new String[]{intent.getStringExtra("to")});
- data.putExtra(OpenPgpApi.EXTRA_REQUEST_ASCII_ARMOR, true);
-
- decrypt(data, intent.getLongExtra("id", -1));
- } else {
- Snackbar snackbar = Snackbar.make(view, R.string.title_no_openpgp, Snackbar.LENGTH_LONG);
- if (Helper.getIntentOpenKeychain().resolveActivity(getPackageManager()) != null)
- snackbar.setAction(R.string.title_fix, new View.OnClickListener() {
+ if (pgpService.isBound()) {
+ Intent data = new Intent();
+ data.setAction(OpenPgpApi.ACTION_DECRYPT_VERIFY);
+ data.putExtra(OpenPgpApi.EXTRA_USER_IDS, new String[]{intent.getStringExtra("to")});
+ data.putExtra(OpenPgpApi.EXTRA_REQUEST_ASCII_ARMOR, true);
+
+ decrypt(data, intent.getLongExtra("id", -1));
+ } else {
+ Snackbar snackbar = Snackbar.make(view, R.string.title_no_openpgp, Snackbar.LENGTH_LONG);
+ if (Helper.getIntentOpenKeychain().resolveActivity(getPackageManager()) != null) {
+ snackbar.setAction(R.string.title_fix, new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(Helper.getIntentOpenKeychain());
}
});
- snackbar.show();
}
- } else
- onShowPro(intent);
- }
-
- private void onShowPro(Intent intent) {
- FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
- fragmentTransaction.replace(R.id.content_frame, new FragmentPro()).addToBackStack("pro");
- fragmentTransaction.commit();
+ snackbar.show();
+ }
}
private void decrypt(Intent data, long id) {
diff --git a/app/src/main/java/eu/faircode/email/AdapterMessage.java b/app/src/main/java/eu/faircode/email/AdapterMessage.java
index 00bb6019..a02bc04a 100644
--- a/app/src/main/java/eu/faircode/email/AdapterMessage.java
+++ b/app/src/main/java/eu/faircode/email/AdapterMessage.java
@@ -17,6 +17,7 @@ package eu.faircode.email;
along with FairEmail. If not, see .
Copyright 2018 by Marcel Bokhorst (M66B)
+ Copyright 2019 by Distopico
*/
import android.Manifest;
@@ -948,15 +949,10 @@ public class AdapterMessage extends PagedListAdapter.
Copyright 2018 by Marcel Bokhorst (M66B)
+ Copyright 2019 by Distopico
*/
import android.app.usage.UsageStatsManager;
@@ -95,7 +96,7 @@ public class FragmentAbout extends FragmentEx {
BuildConfig.APPLICATION_ID,
BuildConfig.VERSION_NAME,
Helper.hasValidFingerprint(context) ? "1" : "3",
- Helper.isPro(context) ? "+" : ""));
+ "+"));
sb.append(String.format("Android: %s (SDK %d)\r\n", Build.VERSION.RELEASE, Build.VERSION.SDK_INT));
sb.append("\r\n");
diff --git a/app/src/main/java/eu/faircode/email/FragmentAccount.java b/app/src/main/java/eu/faircode/email/FragmentAccount.java
index c927b1af..67b5f492 100644
--- a/app/src/main/java/eu/faircode/email/FragmentAccount.java
+++ b/app/src/main/java/eu/faircode/email/FragmentAccount.java
@@ -17,6 +17,7 @@ package eu.faircode.email;
along with FairEmail. If not, see .
Copyright 2018 by Marcel Bokhorst (M66B)
+ Copyright 2019 by Distopico
*/
import android.Manifest;
@@ -116,7 +117,6 @@ public class FragmentAccount extends FragmentEx {
private View vwColor;
private ImageView ibColorDefault;
private EditText etSignature;
- private ImageButton ibPro;
private CheckBox cbSynchronize;
private CheckBox cbPrimary;
@@ -190,7 +190,6 @@ public class FragmentAccount extends FragmentEx {
vwColor = view.findViewById(R.id.vwColor);
ibColorDefault = view.findViewById(R.id.ibColorDefault);
etSignature = view.findViewById(R.id.etSignature);
- ibPro = view.findViewById(R.id.ibPro);
cbSynchronize = view.findViewById(R.id.cbSynchronize);
cbPrimary = view.findViewById(R.id.cbPrimary);
@@ -362,23 +361,16 @@ public class FragmentAccount extends FragmentEx {
btnColor.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- if (Helper.isPro(getContext())) {
- int[] colors = getContext().getResources().getIntArray(R.array.colorPicker);
- ColorPickerDialog colorPickerDialog = new ColorPickerDialog();
- colorPickerDialog.initialize(R.string.title_account_color, colors, color, 4, colors.length);
- colorPickerDialog.setOnColorSelectedListener(new ColorPickerSwatch.OnColorSelectedListener() {
+ int[] colors = getContext().getResources().getIntArray(R.array.colorPicker);
+ ColorPickerDialog colorPickerDialog = new ColorPickerDialog();
+ colorPickerDialog.initialize(R.string.title_account_color, colors, color, 4, colors.length);
+ colorPickerDialog.setOnColorSelectedListener(new ColorPickerSwatch.OnColorSelectedListener() {
@Override
public void onColorSelected(int color) {
setColor(color);
}
});
- colorPickerDialog.show(getFragmentManager(), "colorpicker");
- } else {
- FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
- fragmentTransaction.hide(FragmentAccount.this);
- fragmentTransaction.add(R.id.content_frame, new FragmentPro()).addToBackStack("pro");
- fragmentTransaction.commit();
- }
+ colorPickerDialog.show(getFragmentManager(), "colorpicker");
}
});
@@ -389,16 +381,6 @@ public class FragmentAccount extends FragmentEx {
}
});
- ibPro.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
- fragmentTransaction.hide(FragmentAccount.this);
- fragmentTransaction.add(R.id.content_frame, new FragmentPro()).addToBackStack("pro");
- fragmentTransaction.commit();
- }
- });
-
cbSynchronize.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
@@ -979,15 +961,8 @@ public class FragmentAccount extends FragmentEx {
setColor(color);
- boolean pro = Helper.isPro(getContext());
- etSignature.setHint(pro ? R.string.title_optional : R.string.title_pro_feature);
- etSignature.setEnabled(pro);
- if (pro) {
- ViewGroup.LayoutParams lp = ibPro.getLayoutParams();
- lp.height = 0;
- lp.width = 0;
- ibPro.setLayoutParams(lp);
- }
+ etSignature.setHint(R.string.title_optional);
+ etSignature.setEnabled(true);
cbPrimary.setEnabled(cbSynchronize.isChecked());
diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java
index 1fc00737..e6e89c8f 100644
--- a/app/src/main/java/eu/faircode/email/FragmentCompose.java
+++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java
@@ -17,6 +17,7 @@ package eu.faircode.email;
along with FairEmail. If not, see .
Copyright 2018 by Marcel Bokhorst (M66B)
+ Copyright 2019 by Distopico
*/
import android.Manifest;
@@ -496,45 +497,41 @@ public class FragmentCompose extends FragmentEx {
}
private void onEncrypt() {
- if (Helper.isPro(getContext())) {
- if (pgpService.isBound())
- try {
- String to = etTo.getText().toString();
- InternetAddress ato[] = (TextUtils.isEmpty(to) ? new InternetAddress[0] : InternetAddress.parse(to));
- if (ato.length == 0)
- throw new IllegalArgumentException(getString(R.string.title_to_missing));
-
- String[] tos = new String[ato.length];
- for (int i = 0; i < ato.length; i++)
- tos[i] = ato[i].getAddress();
-
- Intent data = new Intent();
- data.setAction(OpenPgpApi.ACTION_SIGN_AND_ENCRYPT);
- data.putExtra(OpenPgpApi.EXTRA_USER_IDS, tos);
- data.putExtra(OpenPgpApi.EXTRA_REQUEST_ASCII_ARMOR, true);
-
- encrypt(data);
- } catch (Throwable ex) {
- if (ex instanceof IllegalArgumentException)
- Snackbar.make(view, ex.getMessage(), Snackbar.LENGTH_LONG).show();
- else
- Helper.unexpectedError(getContext(), ex);
+ if (pgpService.isBound()) {
+ try {
+ String to = etTo.getText().toString();
+ InternetAddress ato[] = (TextUtils.isEmpty(to) ? new InternetAddress[0] : InternetAddress.parse(to));
+ if (ato.length == 0)
+ throw new IllegalArgumentException(getString(R.string.title_to_missing));
+
+ String[] tos = new String[ato.length];
+ for (int i = 0; i < ato.length; i++)
+ tos[i] = ato[i].getAddress();
+
+ Intent data = new Intent();
+ data.setAction(OpenPgpApi.ACTION_SIGN_AND_ENCRYPT);
+ data.putExtra(OpenPgpApi.EXTRA_USER_IDS, tos);
+ data.putExtra(OpenPgpApi.EXTRA_REQUEST_ASCII_ARMOR, true);
+
+ encrypt(data);
+ } catch (Throwable ex) {
+ if (ex instanceof IllegalArgumentException) {
+ Snackbar.make(view, ex.getMessage(), Snackbar.LENGTH_LONG).show();
+ } else {
+ Helper.unexpectedError(getContext(), ex);
}
- else {
- Snackbar snackbar = Snackbar.make(view, R.string.title_no_openpgp, Snackbar.LENGTH_LONG);
- if (Helper.getIntentOpenKeychain().resolveActivity(getContext().getPackageManager()) != null)
- snackbar.setAction(R.string.title_fix, new View.OnClickListener() {
+ }
+ } else {
+ Snackbar snackbar = Snackbar.make(view, R.string.title_no_openpgp, Snackbar.LENGTH_LONG);
+ if (Helper.getIntentOpenKeychain().resolveActivity(getContext().getPackageManager()) != null) {
+ snackbar.setAction(R.string.title_fix, new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(Helper.getIntentOpenKeychain());
}
});
- snackbar.show();
}
- } else {
- FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
- fragmentTransaction.replace(R.id.content_frame, new FragmentPro()).addToBackStack("pro");
- fragmentTransaction.commit();
+ snackbar.show();
}
}
@@ -962,7 +959,6 @@ public class FragmentCompose extends FragmentEx {
long id = args.getLong("id", -1);
long reference = args.getLong("reference", -1);
long answer = args.getLong("answer", -1);
- boolean pro = Helper.isPro(getContext());
Log.i(Helper.TAG, "Load draft action=" + action + " id=" + id + " reference=" + reference);
@@ -1076,8 +1072,9 @@ public class FragmentCompose extends FragmentEx {
else
body = body.replaceAll("\\r?\\n", "
");
- if (pro && !TextUtils.isEmpty(account.signature))
+ if (!TextUtils.isEmpty(account.signature)) {
body += account.signature;
+ }
} else {
draft.thread = ref.thread;
@@ -1125,8 +1122,9 @@ public class FragmentCompose extends FragmentEx {
HtmlHelper.sanitize(ref.read(context)));
}
- if (pro && !TextUtils.isEmpty(account.signature))
+ if (!TextUtils.isEmpty(account.signature)) {
body = account.signature + body;
+ }
if (answer > 0 && ("reply".equals(action) || "reply_all".equals(action))) {
String text = db.answer().getAnswer(answer).text;
@@ -1567,4 +1565,4 @@ public class FragmentCompose extends FragmentEx {
return view;
}
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java
index e73e75f4..889b8bd5 100644
--- a/app/src/main/java/eu/faircode/email/FragmentMessages.java
+++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java
@@ -17,6 +17,7 @@ package eu.faircode.email;
along with FairEmail. If not, see .
Copyright 2018 by Marcel Bokhorst (M66B)
+ Copyright 2019 by Distopico
*/
import android.content.Context;
@@ -174,15 +175,6 @@ public class FragmentMessages extends FragmentEx {
// Wire controls
- tvSupport.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
- fragmentTransaction.replace(R.id.content_frame, new FragmentPro()).addToBackStack("pro");
- fragmentTransaction.commit();
- }
- });
-
ibHintSwipe.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@@ -549,56 +541,58 @@ public class FragmentMessages extends FragmentEx {
fabMove.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- if (Helper.isPro(getContext())) {
- Bundle args = new Bundle();
- args.putLong("folder", folder);
-
- new SimpleTask>() {
- @Override
- protected List onLoad(Context context, Bundle args) {
- long folder = args.getLong("folder");
- DB db = DB.getInstance(context);
-
- EntityFolder source = db.folder().getFolder(folder);
- List folders = db.folder().getFolders(source.account);
- List targets = new ArrayList<>();
- for (EntityFolder f : folders)
- if (!f.id.equals(folder) && !EntityFolder.DRAFTS.equals(f.type))
- targets.add(f);
-
- final Collator collator = Collator.getInstance(Locale.getDefault());
- collator.setStrength(Collator.SECONDARY); // Case insensitive, process accents etc
-
- Collections.sort(targets, new Comparator() {
+ Bundle args = new Bundle();
+ args.putLong("folder", folder);
+
+ new SimpleTask>() {
+ @Override
+ protected List onLoad(Context context, Bundle args) {
+ long folder = args.getLong("folder");
+ DB db = DB.getInstance(context);
+
+ EntityFolder source = db.folder().getFolder(folder);
+ List folders = db.folder().getFolders(source.account);
+ List targets = new ArrayList<>();
+ for (EntityFolder f : folders) {
+ if (!f.id.equals(folder) && !EntityFolder.DRAFTS.equals(f.type)) {
+ targets.add(f);
+ }
+ }
+
+ final Collator collator = Collator.getInstance(Locale.getDefault());
+ collator.setStrength(Collator.SECONDARY); // Case insensitive, process accents etc
+
+ Collections.sort(targets, new Comparator() {
@Override
public int compare(EntityFolder f1, EntityFolder f2) {
int s = Integer.compare(
EntityFolder.FOLDER_SORT_ORDER.indexOf(f1.type),
EntityFolder.FOLDER_SORT_ORDER.indexOf(f2.type));
- if (s != 0)
+ if (s != 0) {
return s;
+ }
return collator.compare(
f1.name == null ? "" : f1.name,
f2.name == null ? "" : f2.name);
}
});
- return targets;
- }
+ return targets;
+ }
- @Override
- protected void onLoaded(final Bundle args, List folders) {
- PopupMenu popupMenu = new PopupMenu(getContext(), popupAnchor);
+ @Override
+ protected void onLoaded(final Bundle args, List folders) {
+ PopupMenu popupMenu = new PopupMenu(getContext(), popupAnchor);
- int order = 0;
- for (EntityFolder folder : folders) {
- String name = (folder.display == null
- ? Helper.localizeFolderName(getContext(), folder.name)
- : folder.display);
- popupMenu.getMenu().add(Menu.NONE, folder.id.intValue(), order++, name);
- }
+ int order = 0;
+ for (EntityFolder folder : folders) {
+ String name = (folder.display == null
+ ? Helper.localizeFolderName(getContext(), folder.name)
+ : folder.display);
+ popupMenu.getMenu().add(Menu.NONE, folder.id.intValue(), order++, name);
+ }
- popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
+ popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(final MenuItem target) {
MutableSelection selection = new MutableSelection<>();
@@ -656,19 +650,14 @@ public class FragmentMessages extends FragmentEx {
}
});
- popupMenu.show();
- }
+ popupMenu.show();
+ }
- @Override
- protected void onException(Bundle args, Throwable ex) {
- Helper.unexpectedError(getContext(), ex);
- }
- }.load(FragmentMessages.this, args);
- } else {
- FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
- fragmentTransaction.replace(R.id.content_frame, new FragmentPro()).addToBackStack("pro");
- fragmentTransaction.commit();
- }
+ @Override
+ protected void onException(Bundle args, Throwable ex) {
+ Helper.unexpectedError(getContext(), ex);
+ }
+ }.load(FragmentMessages.this, args);
}
});
@@ -857,7 +846,7 @@ public class FragmentMessages extends FragmentEx {
@Override
public void onResume() {
super.onResume();
- grpSupport.setVisibility(Helper.isPro(getContext()) ? View.GONE : View.VISIBLE);
+ grpSupport.setVisibility(View.GONE);
}
@Override
@@ -872,33 +861,27 @@ public class FragmentMessages extends FragmentEx {
public boolean onQueryTextSubmit(String query) {
menuSearch.collapseActionView();
- if (Helper.isPro(getContext())) {
- Bundle args = new Bundle();
- args.putLong("folder", folder);
- args.putString("search", query);
+ Bundle args = new Bundle();
+ args.putLong("folder", folder);
+ args.putString("search", query);
- new SimpleTask() {
- @Override
- protected Void onLoad(Context context, Bundle args) {
- DB.getInstance(context).message().deleteFoundMessages();
- return null;
- }
+ new SimpleTask() {
+ @Override
+ protected Void onLoad(Context context, Bundle args) {
+ DB.getInstance(context).message().deleteFoundMessages();
+ return null;
+ }
- @Override
- protected void onLoaded(Bundle args, Void data) {
- FragmentMessages fragment = new FragmentMessages();
- fragment.setArguments(args);
+ @Override
+ protected void onLoaded(Bundle args, Void data) {
+ FragmentMessages fragment = new FragmentMessages();
+ fragment.setArguments(args);
- FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
- fragmentTransaction.replace(R.id.content_frame, fragment).addToBackStack("search");
- fragmentTransaction.commit();
- }
- }.load(FragmentMessages.this, args);
- } else {
- FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
- fragmentTransaction.replace(R.id.content_frame, new FragmentPro()).addToBackStack("pro");
- fragmentTransaction.commit();
- }
+ FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
+ fragmentTransaction.replace(R.id.content_frame, fragment).addToBackStack("search");
+ fragmentTransaction.commit();
+ }
+ }.load(FragmentMessages.this, args);
return true;
}
@@ -945,15 +928,9 @@ public class FragmentMessages extends FragmentEx {
case R.id.menu_sort_on_unread:
case R.id.menu_sort_on_starred:
- if (Helper.isPro(getContext())) {
- prefs.edit().putString("sort", item.getItemId() == R.id.menu_sort_on_unread ? "unread" : "starred").apply();
- item.setChecked(true);
- loadMessages();
- } else {
- FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
- fragmentTransaction.replace(R.id.content_frame, new FragmentPro()).addToBackStack("pro");
- fragmentTransaction.commit();
- }
+ prefs.edit().putString("sort", item.getItemId() == R.id.menu_sort_on_unread ? "unread" : "starred").apply();
+ item.setChecked(true);
+ loadMessages();
return true;
case R.id.menu_folders:
diff --git a/app/src/main/java/eu/faircode/email/FragmentPro.java b/app/src/main/java/eu/faircode/email/FragmentPro.java
deleted file mode 100644
index 6617a26c..00000000
--- a/app/src/main/java/eu/faircode/email/FragmentPro.java
+++ /dev/null
@@ -1,95 +0,0 @@
-package eu.faircode.email;
-
-/*
- This file is part of FairEmail.
-
- FairEmail is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- FairEmail is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with FairEmail. If not, see .
-
- Copyright 2018 by Marcel Bokhorst (M66B)
-*/
-
-import android.content.Intent;
-import android.content.SharedPreferences;
-import android.os.Bundle;
-import android.preference.PreferenceManager;
-import android.text.Html;
-import android.text.method.LinkMovementMethod;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.Button;
-import android.widget.TextView;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.localbroadcastmanager.content.LocalBroadcastManager;
-
-public class FragmentPro extends FragmentEx implements SharedPreferences.OnSharedPreferenceChangeListener {
- private TextView tvActivated;
- private TextView tvList;
- private Button btnPurchase;
- private TextView tvPrice;
-
- @Override
- @Nullable
- public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
- setSubtitle(R.string.menu_pro);
-
- View view = inflater.inflate(R.layout.fragment_pro, container, false);
-
- tvActivated = view.findViewById(R.id.tvActivated);
- tvList = view.findViewById(R.id.tvList);
- btnPurchase = view.findViewById(R.id.btnPurchase);
- tvPrice = view.findViewById(R.id.tvPrice);
-
- tvList.setText(Html.fromHtml("" + Html.escapeHtml(getString(R.string.title_pro_list)) + ""));
- tvList.setMovementMethod(LinkMovementMethod.getInstance());
-
- SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
- onSharedPreferenceChanged(prefs, "pro");
-
- btnPurchase.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(getContext());
- lbm.sendBroadcast(new Intent(ActivityView.ACTION_PURCHASE));
- }
- });
-
- tvPrice.setMovementMethod(LinkMovementMethod.getInstance());
-
- return view;
- }
-
- @Override
- public void onResume() {
- super.onResume();
- PreferenceManager.getDefaultSharedPreferences(getContext()).registerOnSharedPreferenceChangeListener(this);
- }
-
- @Override
- public void onPause() {
- super.onPause();
- PreferenceManager.getDefaultSharedPreferences(getContext()).unregisterOnSharedPreferenceChangeListener(this);
- }
-
- @Override
- public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
- if ("pro".equals(key)) {
- boolean pro = prefs.getBoolean(key, false);
- tvActivated.setVisibility(pro ? View.VISIBLE : View.GONE);
- btnPurchase.setEnabled(!pro);
- }
- }
-}
diff --git a/app/src/main/java/eu/faircode/email/FragmentSetup.java b/app/src/main/java/eu/faircode/email/FragmentSetup.java
index 77d03c6c..83b99bfd 100644
--- a/app/src/main/java/eu/faircode/email/FragmentSetup.java
+++ b/app/src/main/java/eu/faircode/email/FragmentSetup.java
@@ -17,6 +17,7 @@ package eu.faircode.email;
along with FairEmail. If not, see .
Copyright 2018 by Marcel Bokhorst (M66B)
+ Copyright 2019 by Distopico
*/
import android.Manifest;
@@ -231,31 +232,21 @@ public class FragmentSetup extends FragmentEx {
tbDarkTheme.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton button, boolean checked) {
- if (Helper.isPro(getContext())) {
- if (checked != (Boolean) button.getTag()) {
- button.setTag(checked);
- tbDarkTheme.setChecked(checked);
- prefs.edit().putString("theme", checked ? "dark" : "light").apply();
- }
- } else {
- prefs.edit().remove("theme").apply();
- if (checked) {
- tbDarkTheme.setChecked(false);
- FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
- fragmentTransaction.replace(R.id.content_frame, new FragmentPro()).addToBackStack("pro");
- fragmentTransaction.commit();
- }
+ if (checked != (Boolean) button.getTag()) {
+ button.setTag(checked);
+ tbDarkTheme.setChecked(checked);
+ prefs.edit().putString("theme", checked ? "dark" : "light").apply();
}
}
});
btnOptions.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
- fragmentTransaction.replace(R.id.content_frame, new FragmentOptions()).addToBackStack("options");
- fragmentTransaction.commit();
- }
+ @Override
+ public void onClick(View view) {
+ FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
+ fragmentTransaction.replace(R.id.content_frame, new FragmentOptions()).addToBackStack("options");
+ fragmentTransaction.commit();
+ }
});
// Initialize
@@ -445,26 +436,18 @@ public class FragmentSetup extends FragmentEx {
}
private void onMenuExport() {
- if (Helper.isPro(getContext()))
- new DialogBuilderLifecycle(getContext(), getViewLifecycleOwner())
- .setMessage(R.string.title_setup_export_do)
- .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- try {
- startActivityForResult(getIntentExport(), ActivitySetup.REQUEST_EXPORT);
- } catch (Throwable ex) {
- Log.e(Helper.TAG, ex + "\n" + Log.getStackTraceString(ex));
- }
+ new DialogBuilderLifecycle(getContext(), getViewLifecycleOwner())
+ .setMessage(R.string.title_setup_export_do)
+ .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ try {
+ startActivityForResult(getIntentExport(), ActivitySetup.REQUEST_EXPORT);
+ } catch (Throwable ex) {
+ Log.e(Helper.TAG, ex + "\n" + Log.getStackTraceString(ex));
}
- })
- .create()
- .show();
- else {
- FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
- fragmentTransaction.replace(R.id.content_frame, new FragmentPro()).addToBackStack("pro");
- fragmentTransaction.commit();
- }
+ }
+ }).create().show();
}
private void onMenuImport() {
diff --git a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java
index 0c4ba649..bf755cde 100644
--- a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java
+++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java
@@ -17,6 +17,7 @@ package eu.faircode.email;
along with FairEmail. If not, see .
Copyright 2018 by Marcel Bokhorst (M66B)
+ Copyright 2019 by Distopico
*/
import android.Manifest;
@@ -347,7 +348,6 @@ public class ServiceSynchronize extends LifecycleService {
if (messages.size() == 0)
return notifications;
- boolean pro = Helper.isPro(this);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
// Build pending intent
@@ -392,20 +392,18 @@ public class ServiceSynchronize extends LifecycleService {
builder.setLights(0xff00ff00, 1000, 1000);
}
- if (pro) {
- DateFormat df = SimpleDateFormat.getDateTimeInstance(SimpleDateFormat.SHORT, SimpleDateFormat.SHORT);
- StringBuilder sb = new StringBuilder();
- for (EntityMessage message : messages) {
- sb.append("").append(MessageHelper.getFormattedAddresses(message.from, false)).append("");
- if (!TextUtils.isEmpty(message.subject))
- sb.append(": ").append(message.subject);
- sb.append(" ").append(df.format(new Date(message.sent == null ? message.received : message.sent)));
- sb.append("
");
- }
-
- builder.setStyle(new Notification.BigTextStyle().bigText(Html.fromHtml(sb.toString())));
+ DateFormat df = SimpleDateFormat.getDateTimeInstance(SimpleDateFormat.SHORT, SimpleDateFormat.SHORT);
+ StringBuilder sb = new StringBuilder();
+ for (EntityMessage message : messages) {
+ sb.append("").append(MessageHelper.getFormattedAddresses(message.from, false)).append("");
+ if (!TextUtils.isEmpty(message.subject))
+ sb.append(": ").append(message.subject);
+ sb.append(" ").append(df.format(new Date(message.sent == null ? message.received : message.sent)));
+ sb.append("
");
}
+ builder.setStyle(new Notification.BigTextStyle().bigText(Html.fromHtml(sb.toString())));
+
notifications.add(builder.build());
Uri uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
@@ -465,12 +463,13 @@ public class ServiceSynchronize extends LifecycleService {
.addAction(actionSeen.build())
.addAction(actionTrash.build());
- if (pro)
- if (!TextUtils.isEmpty(message.subject))
- mbuilder.setContentText(message.subject);
+ if (!TextUtils.isEmpty(message.subject)) {
+ mbuilder.setContentText(message.subject);
+ }
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
mbuilder.setGroupAlertBehavior(Notification.GROUP_ALERT_CHILDREN);
+ }
notifications.add(mbuilder.build());
}
diff --git a/app/src/main/res/layout/fragment_account.xml b/app/src/main/res/layout/fragment_account.xml
index 0e0e7bfd..ab0303e0 100644
--- a/app/src/main/res/layout/fragment_account.xml
+++ b/app/src/main/res/layout/fragment_account.xml
@@ -550,7 +550,7 @@
android:id="@+id/grpAdvanced"
android:layout_width="0dp"
android:layout_height="0dp"
- app:constraint_referenced_ids="tvName,etName,btnColor,vwColor,ibColorDefault,tvSignature,etSignature,ibPro,cbSynchronize,cbPrimary,tvInterval,etInterval" />
+ app:constraint_referenced_ids="tvName,etName,btnColor,vwColor,ibColorDefault,tvSignature,etSignature,cbSynchronize,cbPrimary,tvInterval,etInterval" />
-
\ No newline at end of file
+