mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-04-14 19:56:32 +00:00
remove dbflow
This commit is contained in:
parent
3c61635394
commit
68e3ca7b65
45 changed files with 37 additions and 235 deletions
|
|
@ -92,11 +92,6 @@ dependencies {
|
|||
// a better fab alternative
|
||||
compile 'com.github.clans:fab:1.6.4'
|
||||
|
||||
// ORM
|
||||
apt 'com.raizlabs.android:DBFlow-Compiler:2.2.1'
|
||||
compile "com.raizlabs.android:DBFlow-Core:2.2.1"
|
||||
compile "com.raizlabs.android:DBFlow:2.2.1"
|
||||
|
||||
//Eventbus
|
||||
compile 'org.greenrobot:eventbus:3.0.0'
|
||||
|
||||
|
|
|
|||
|
|
@ -1,15 +0,0 @@
|
|||
package com.habitrpg.android.habitica;
|
||||
|
||||
import com.raizlabs.android.dbflow.annotation.Database;
|
||||
|
||||
@Database(name = HabitDatabase.NAME, version = HabitDatabase.VERSION, foreignKeysSupported = true)
|
||||
public class HabitDatabase {
|
||||
|
||||
public static final String NAME = "Habitica";
|
||||
|
||||
public static final int VERSION = 36;
|
||||
|
||||
public HabitDatabase() {
|
||||
super();
|
||||
}
|
||||
}
|
||||
|
|
@ -27,7 +27,6 @@ import com.habitrpg.android.habitica.helpers.ReactiveErrorHandler;
|
|||
import com.habitrpg.android.habitica.proxy.ifce.CrashlyticsProxy;
|
||||
import com.habitrpg.android.habitica.ui.activities.IntroActivity;
|
||||
import com.habitrpg.android.habitica.ui.activities.LoginActivity;
|
||||
import com.raizlabs.android.dbflow.config.FlowManager;
|
||||
import com.squareup.leakcanary.LeakCanary;
|
||||
import com.squareup.leakcanary.RefWatcher;
|
||||
|
||||
|
|
@ -36,7 +35,6 @@ import org.solovyev.android.checkout.Cache;
|
|||
import org.solovyev.android.checkout.Checkout;
|
||||
import org.solovyev.android.checkout.PurchaseVerifier;
|
||||
|
||||
import java.io.File;
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
|
@ -72,23 +70,15 @@ public abstract class HabiticaBaseApplication extends MultiDexApplication {
|
|||
return (HabiticaBaseApplication) context.getApplicationContext();
|
||||
}
|
||||
|
||||
public static boolean exists(@NonNull Context context) {
|
||||
try {
|
||||
File dbFile = context.getDatabasePath(String.format("%s.db", HabitDatabase.NAME));
|
||||
return dbFile.exists();
|
||||
} catch (Exception exception) {
|
||||
Log.e("DbExists", "Database %s doesn't exist.", exception);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private static void setFinalStatic(Field field, @Nullable Object newValue) throws NoSuchFieldException, IllegalAccessException {
|
||||
field.setAccessible(true);
|
||||
field.set(null, newValue);
|
||||
}
|
||||
|
||||
public static void logout(Context context) {
|
||||
getInstance(context).deleteDatabase(HabitDatabase.NAME);
|
||||
Realm realm = Realm.getDefaultInstance();
|
||||
getInstance(context).deleteDatabase(realm.getPath());
|
||||
realm.close();
|
||||
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
|
||||
boolean use_reminder = preferences.getBoolean("use_reminder", false);
|
||||
String reminder_time = preferences.getString("reminder_time", "19:00");
|
||||
|
|
@ -135,7 +125,6 @@ public abstract class HabiticaBaseApplication extends MultiDexApplication {
|
|||
setupDagger();
|
||||
crashlyticsProxy.init(this);
|
||||
setupLeakCanary();
|
||||
setupFlowManager();
|
||||
setupFacebookSdk();
|
||||
createBillingAndCheckout();
|
||||
registerActivityLifecycleCallbacks();
|
||||
|
|
@ -197,10 +186,6 @@ public abstract class HabiticaBaseApplication extends MultiDexApplication {
|
|||
refWatcher = LeakCanary.install(this);
|
||||
}
|
||||
|
||||
private void setupFlowManager() {
|
||||
FlowManager.init(this);
|
||||
}
|
||||
|
||||
private void setupFacebookSdk() {
|
||||
String fbApiKey = null;
|
||||
try {
|
||||
|
|
@ -276,55 +261,10 @@ public abstract class HabiticaBaseApplication extends MultiDexApplication {
|
|||
|
||||
@Override
|
||||
public boolean deleteDatabase(String name) {
|
||||
if (!name.endsWith(".db")) {
|
||||
name += ".db";
|
||||
}
|
||||
|
||||
FlowManager.destroy();
|
||||
reflectionHack(getApplicationContext());
|
||||
|
||||
boolean deleted = super.deleteDatabase(getDatabasePath(name).getAbsolutePath());
|
||||
|
||||
if (deleted) {
|
||||
Log.i("hack", "Database deleted");
|
||||
} else {
|
||||
Log.e("hack", "Database not deleted");
|
||||
}
|
||||
|
||||
if (exists(getApplicationContext())) {
|
||||
Log.i("hack", "Database exists before FlowManager.init");
|
||||
} else {
|
||||
Log.i("hack", "Database does not exist before FlowManager.init");
|
||||
}
|
||||
|
||||
return deleted;
|
||||
}
|
||||
|
||||
// Hack for DBFlow - Not deleting Database
|
||||
// https://github.com/kaeawc/dbflow-sample-app/blob/master/app/src/main/java/io/kaeawc/flow/app/ui/MainActivityFragment.java#L201
|
||||
private void reflectionHack(@NonNull Context context) {
|
||||
|
||||
try {
|
||||
Field field = FlowManager.class.getDeclaredField("mDatabaseHolder");
|
||||
setFinalStatic(field, null);
|
||||
} catch (NoSuchFieldException noSuchField) {
|
||||
Log.e("nosuchfield", "No such field exists in FlowManager", noSuchField);
|
||||
} catch (IllegalAccessException illegalAccess) {
|
||||
Log.e("illegalaccess", "Illegal access of FlowManager", illegalAccess);
|
||||
}
|
||||
|
||||
FlowManager.init(context);
|
||||
|
||||
if (exists(context)) {
|
||||
Log.i("Database", "Database exists after FlowManager.init with reflection hack");
|
||||
} else {
|
||||
Log.i("Database", "Database does not exist after FlowManager.init with reflection hack");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public File getDatabasePath(String name) {
|
||||
return new File(getExternalFilesDir(null), "HabiticaDatabase/" + name);
|
||||
Realm realm = Realm.getDefaultInstance();
|
||||
realm.deleteAll();
|
||||
realm.close();
|
||||
return true;
|
||||
}
|
||||
|
||||
private void createBillingAndCheckout() {
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@ import java.util.Map;
|
|||
import retrofit2.HttpException;
|
||||
import rx.Observable;
|
||||
|
||||
|
||||
public interface ApiClient {
|
||||
void setLanguageCode(String languageCode);
|
||||
|
||||
|
|
@ -199,14 +200,14 @@ public interface ApiClient {
|
|||
|
||||
Observable<Void> leaveChallenge(String challengeId, LeaveChallengeBody body);
|
||||
|
||||
|
||||
Observable<Challenge> createChallenge(Challenge challenge);
|
||||
|
||||
Observable<Task> createChallengeTask(String challengeId, Task task);
|
||||
Observable<List<Task>> createChallengeTasks(String challengeId, List<Task> tasks);
|
||||
Observable<Challenge> updateChallenge(Challenge challenge);
|
||||
Observable<Void> deleteChallenge(String challengeId);
|
||||
|
||||
|
||||
Observable<Challenge> createChallenge(Challenge challenge);
|
||||
|
||||
Observable<Task> createChallengeTask(String challengeId, Task task);
|
||||
Observable<List<Task>> createChallengeTasks(String challengeId, List<Task> tasks);
|
||||
Observable<Challenge> updateChallenge(Challenge challenge);
|
||||
Observable<Void> deleteChallenge(String challengeId);
|
||||
|
||||
//DEBUG: These calls only work on a local development server
|
||||
|
||||
Observable<Void> debugAddTenGems();
|
||||
|
|
|
|||
|
|
@ -65,6 +65,7 @@ import com.habitrpg.android.habitica.models.tasks.RemindersItem;
|
|||
import com.habitrpg.android.habitica.models.tasks.Task;
|
||||
import com.habitrpg.android.habitica.models.tasks.TaskList;
|
||||
import com.habitrpg.android.habitica.utils.BooleanAsIntAdapter;
|
||||
import com.habitrpg.android.habitica.utils.ChallengeDeserializer;
|
||||
import com.habitrpg.android.habitica.utils.ChatMessageDeserializer;
|
||||
import com.habitrpg.android.habitica.utils.ChatMessageListDeserializer;
|
||||
import com.habitrpg.android.habitica.utils.ChecklistItemSerializer;
|
||||
|
|
@ -92,7 +93,6 @@ import com.habitrpg.android.habitica.utils.TaskSerializer;
|
|||
import com.habitrpg.android.habitica.utils.TaskTagDeserializer;
|
||||
import com.habitrpg.android.habitica.utils.TutorialStepListDeserializer;
|
||||
import com.habitrpg.android.habitica.utils.UserDeserializer;
|
||||
import com.raizlabs.android.dbflow.structure.ModelAdapter;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.lang.annotation.Annotation;
|
||||
|
|
@ -244,17 +244,6 @@ public class ApiClientImpl implements Action1<Throwable>, ApiClient {
|
|||
//Exclusion strategy needed for DBFlow https://github.com/Raizlabs/DBFlow/issues/121
|
||||
Gson gson = new GsonBuilder()
|
||||
.setExclusionStrategies(new CheckListItemExcludeStrategy())
|
||||
.setExclusionStrategies(new ExclusionStrategy() {
|
||||
@Override
|
||||
public boolean shouldSkipField(FieldAttributes field) {
|
||||
return field.getDeclaredClass().equals(ModelAdapter.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldSkipClass(Class<?> clazz) {
|
||||
return false;
|
||||
}
|
||||
})
|
||||
.registerTypeAdapter(taskTagClassListType, new TaskTagDeserializer())
|
||||
.registerTypeAdapter(Boolean.class, new BooleanAsIntAdapter())
|
||||
.registerTypeAdapter(boolean.class, new BooleanAsIntAdapter())
|
||||
|
|
@ -281,7 +270,7 @@ public class ApiClientImpl implements Action1<Throwable>, ApiClient {
|
|||
.registerTypeAdapter(Task.class, new TaskSerializer())
|
||||
.registerTypeAdapter(ContentResult.class, new ContentDeserializer())
|
||||
.registerTypeAdapter(FeedResponse.class, new FeedResponseDeserializer())
|
||||
.registerTypeAdapter(Challenge.class, new Challenge())
|
||||
.registerTypeAdapter(Challenge.class, new ChallengeDeserializer())
|
||||
.registerTypeAdapter(User.class, new UserDeserializer())
|
||||
.registerTypeAdapter(questCollectListType, new QuestCollectDeserializer())
|
||||
.registerTypeAdapter(chatMessageListType, new ChatMessageListDeserializer())
|
||||
|
|
|
|||
|
|
@ -2,8 +2,6 @@ package com.habitrpg.android.habitica.models;
|
|||
|
||||
import com.habitrpg.android.habitica.models.inventory.Equipment;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import io.realm.RealmList;
|
||||
|
||||
public class ContentGear {
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ import com.habitrpg.android.habitica.models.inventory.Mount;
|
|||
import com.habitrpg.android.habitica.models.inventory.Pet;
|
||||
import com.habitrpg.android.habitica.models.inventory.QuestContent;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
import io.realm.RealmList;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
package com.habitrpg.android.habitica.models;
|
||||
|
||||
import com.habitrpg.android.habitica.models.tasks.Task;
|
||||
import com.habitrpg.android.habitica.models.tasks.TaskTag;
|
||||
import com.habitrpg.android.habitica.models.user.User;
|
||||
|
||||
import java.util.List;
|
||||
|
|
|
|||
|
|
@ -1,15 +1,11 @@
|
|||
package com.habitrpg.android.habitica.models;
|
||||
|
||||
import com.habitrpg.android.habitica.HabitDatabase;
|
||||
import com.habitrpg.android.habitica.models.user.Flags;
|
||||
import com.raizlabs.android.dbflow.annotation.Column;
|
||||
import com.raizlabs.android.dbflow.annotation.PrimaryKey;
|
||||
import com.raizlabs.android.dbflow.annotation.Table;
|
||||
import com.raizlabs.android.dbflow.structure.BaseModel;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import io.realm.RealmObject;
|
||||
import io.realm.annotations.PrimaryKey;
|
||||
|
||||
public class TutorialStep extends RealmObject {
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,5 @@
|
|||
package com.habitrpg.android.habitica.models.inventory;
|
||||
|
||||
import com.raizlabs.android.dbflow.annotation.Column;
|
||||
import com.raizlabs.android.dbflow.annotation.PrimaryKey;
|
||||
import com.raizlabs.android.dbflow.structure.BaseModel;
|
||||
|
||||
public interface Animal {
|
||||
|
||||
public String getKey();
|
||||
|
|
|
|||
|
|
@ -1,9 +1,5 @@
|
|||
package com.habitrpg.android.habitica.models.inventory;
|
||||
|
||||
import com.raizlabs.android.dbflow.annotation.Column;
|
||||
import com.raizlabs.android.dbflow.annotation.PrimaryKey;
|
||||
import com.raizlabs.android.dbflow.structure.BaseModel;
|
||||
|
||||
import io.realm.RealmModel;
|
||||
|
||||
public interface Item extends RealmModel {
|
||||
|
|
|
|||
|
|
@ -2,12 +2,8 @@ package com.habitrpg.android.habitica.models.inventory;
|
|||
|
||||
import android.support.annotation.Nullable;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
|
||||
import io.realm.RealmList;
|
||||
import io.realm.RealmObject;
|
||||
import io.realm.annotations.Ignore;
|
||||
import io.realm.annotations.PrimaryKey;
|
||||
|
||||
public class QuestContent extends RealmObject implements Item {
|
||||
|
|
|
|||
|
|
@ -1,11 +1,5 @@
|
|||
package com.habitrpg.android.habitica.models.inventory;
|
||||
|
||||
import com.habitrpg.android.habitica.HabitDatabase;
|
||||
import com.raizlabs.android.dbflow.annotation.Column;
|
||||
import com.raizlabs.android.dbflow.annotation.PrimaryKey;
|
||||
import com.raizlabs.android.dbflow.annotation.Table;
|
||||
import com.raizlabs.android.dbflow.structure.BaseModel;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
import io.realm.RealmObject;
|
||||
|
|
|
|||
|
|
@ -1,8 +1,5 @@
|
|||
package com.habitrpg.android.habitica.models.invitations;
|
||||
|
||||
import com.google.gson.annotations.Expose;
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
|
||||
import io.realm.RealmObject;
|
||||
import io.realm.annotations.PrimaryKey;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,5 @@
|
|||
package com.habitrpg.android.habitica.models.invitations;
|
||||
|
||||
import com.google.gson.annotations.Expose;
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
|
||||
import io.realm.RealmObject;
|
||||
import io.realm.annotations.PrimaryKey;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
package com.habitrpg.android.habitica.models.social;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
|
||||
import com.habitrpg.android.habitica.models.tasks.TasksOrder;
|
||||
import com.habitrpg.android.habitica.models.user.User;
|
||||
|
||||
|
|
|
|||
|
|
@ -6,12 +6,9 @@ import android.support.annotation.Nullable;
|
|||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import com.habitrpg.android.habitica.R;
|
||||
import com.habitrpg.android.habitica.events.TaskDeleteEvent;
|
||||
import com.habitrpg.android.habitica.models.Tag;
|
||||
import com.habitrpg.android.habitica.ui.helpers.MarkdownParser;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
package com.habitrpg.android.habitica.models.user;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import com.habitrpg.android.habitica.HabitDatabase;
|
||||
|
||||
import io.realm.RealmObject;
|
||||
import io.realm.annotations.PrimaryKey;
|
||||
|
|
|
|||
|
|
@ -1,8 +1,7 @@
|
|||
package com.habitrpg.android.habitica.models.user;
|
||||
|
||||
import com.google.gson.annotations.Expose;
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import com.habitrpg.android.habitica.R;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
import io.realm.RealmObject;
|
||||
|
|
|
|||
|
|
@ -2,11 +2,8 @@ package com.habitrpg.android.habitica.models.user;
|
|||
|
||||
import com.habitrpg.android.habitica.models.inventory.Equipment;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
import io.realm.RealmList;
|
||||
import io.realm.RealmObject;
|
||||
import io.realm.annotations.Ignore;
|
||||
import io.realm.annotations.PrimaryKey;
|
||||
|
||||
public class Gear extends RealmObject {
|
||||
|
|
|
|||
|
|
@ -1,12 +1,9 @@
|
|||
package com.habitrpg.android.habitica.models.user;
|
||||
|
||||
import com.google.gson.annotations.Expose;
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import com.habitrpg.android.habitica.models.social.ChatMessage;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import io.realm.RealmList;
|
||||
import io.realm.RealmObject;
|
||||
|
|
|
|||
|
|
@ -8,11 +8,9 @@ import com.habitrpg.android.habitica.models.inventory.Pet;
|
|||
import com.habitrpg.android.habitica.models.inventory.QuestContent;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
|
||||
import io.realm.RealmList;
|
||||
import io.realm.RealmObject;
|
||||
import io.realm.annotations.Ignore;
|
||||
import io.realm.annotations.PrimaryKey;
|
||||
|
||||
public class Items extends RealmObject {
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ import java.util.List;
|
|||
|
||||
import io.realm.RealmList;
|
||||
import io.realm.RealmObject;
|
||||
import io.realm.annotations.Ignore;
|
||||
import io.realm.annotations.PrimaryKey;
|
||||
|
||||
public class Purchases extends RealmObject {
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ package com.habitrpg.android.habitica.models.user;
|
|||
|
||||
import android.support.annotation.Nullable;
|
||||
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,17 +1,13 @@
|
|||
package com.habitrpg.android.habitica.models.user;
|
||||
|
||||
import android.database.sqlite.SQLiteException;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import com.habitrpg.android.habitica.HabitDatabase;
|
||||
import com.habitrpg.android.habitica.models.PushDevice;
|
||||
import com.habitrpg.android.habitica.models.Tag;
|
||||
import com.habitrpg.android.habitica.models.inventory.Pet;
|
||||
import com.habitrpg.android.habitica.models.invitations.Invitations;
|
||||
import com.habitrpg.android.habitica.models.social.Challenge;
|
||||
import com.habitrpg.android.habitica.models.social.UserParty;
|
||||
import com.habitrpg.android.habitica.models.tasks.Task;
|
||||
import com.habitrpg.android.habitica.models.tasks.TaskList;
|
||||
import com.habitrpg.android.habitica.models.tasks.TasksOrder;
|
||||
import com.habitrpg.android.habitica.ui.AvatarView;
|
||||
|
|
@ -19,7 +15,6 @@ import com.habitrpg.android.habitica.ui.AvatarView;
|
|||
import java.util.ArrayList;
|
||||
import java.util.EnumMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import io.realm.RealmList;
|
||||
import io.realm.RealmObject;
|
||||
|
|
|
|||
|
|
@ -29,8 +29,6 @@ import java.util.List;
|
|||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
|
||||
import static com.raizlabs.android.dbflow.config.FlowManager.getContext;
|
||||
|
||||
public class ChallengesListViewAdapter extends RecyclerView.Adapter<ChallengesListViewAdapter.ChallengeViewHolder> {
|
||||
private List<Challenge> challenges = new ArrayList<>();
|
||||
private List<Challenge> challengesSource = new ArrayList<>();
|
||||
|
|
@ -154,7 +152,7 @@ public class ChallengesListViewAdapter extends RecyclerView.Adapter<ChallengesLi
|
|||
itemView.setOnClickListener(this);
|
||||
|
||||
if (!viewUserChallengesOnly) {
|
||||
challengeName.setTextColor(ContextCompat.getColor(getContext(), R.color.brand_200));
|
||||
challengeName.setTextColor(ContextCompat.getColor(itemView.getContext(), R.color.brand_200));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -186,7 +184,7 @@ public class ChallengesListViewAdapter extends RecyclerView.Adapter<ChallengesLi
|
|||
} else {
|
||||
challengeParticipatingTextView.setVisibility(userIdExists ? View.VISIBLE : View.GONE);
|
||||
|
||||
leaderName.setText(getContext().getString(R.string.byLeader, challenge.leaderName));
|
||||
leaderName.setText(itemView.getContext().getString(R.string.byLeader, challenge.leaderName));
|
||||
participantCount.setText(String.valueOf(challenge.memberCount));
|
||||
leaderParticipantLayout.setVisibility(View.VISIBLE);
|
||||
arrowImage.setVisibility(View.GONE);
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@ import android.widget.TextView;
|
|||
|
||||
import com.facebook.drawee.view.SimpleDraweeView;
|
||||
import com.habitrpg.android.habitica.R;
|
||||
import com.habitrpg.android.habitica.databinding.ValueBarBinding;
|
||||
|
||||
import net.pherth.android.emoji_library.EmojiTextView;
|
||||
|
||||
|
|
@ -79,21 +78,6 @@ public class DataBindingUtils {
|
|||
view.setTextColor(color);
|
||||
}
|
||||
|
||||
@BindingAdapter("android:layout_weight")
|
||||
public static void setLayoutWeight(View view, float weight) {
|
||||
view.clearAnimation();
|
||||
ValueBarBinding value_bar = DataBindingUtil.findBinding(view);
|
||||
LinearLayout.LayoutParams layout = (LinearLayout.LayoutParams) view.getLayoutParams();
|
||||
if (weight == 0.0f || weight == 1.0f || value_bar.getPartyMembers()) {
|
||||
layout.weight = weight;
|
||||
view.setLayoutParams(layout);
|
||||
} else if (layout.weight != weight) {
|
||||
LayoutWeightAnimation anim = new LayoutWeightAnimation(view, weight);
|
||||
anim.setDuration(1250);
|
||||
view.startAnimation(anim);
|
||||
}
|
||||
}
|
||||
|
||||
@BindingAdapter("app:rounded_background")
|
||||
public static void setRoundedBackground(View view, int color) {
|
||||
Drawable drawable = ResourcesCompat.getDrawable(view.getResources(), R.drawable.layout_rounded_bg, null);
|
||||
|
|
|
|||
|
|
@ -1,17 +1,16 @@
|
|||
package com.habitrpg.android.habitica.utils;
|
||||
|
||||
import android.text.TextUtils;
|
||||
|
||||
import com.google.gson.JsonDeserializationContext;
|
||||
import com.google.gson.JsonDeserializer;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonParseException;
|
||||
|
||||
import com.google.gson.JsonSerializationContext;
|
||||
import com.google.gson.JsonSerializer;
|
||||
import com.habitrpg.android.habitica.models.social.Challenge;
|
||||
|
||||
import android.text.TextUtils;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
|
||||
public class ChallengeDeserializer implements JsonDeserializer<Challenge>, JsonSerializer<Challenge> {
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ import com.habitrpg.android.habitica.models.FAQArticle;
|
|||
import com.habitrpg.android.habitica.models.Skill;
|
||||
import com.habitrpg.android.habitica.models.inventory.Customization;
|
||||
import com.habitrpg.android.habitica.models.inventory.Egg;
|
||||
import com.habitrpg.android.habitica.models.inventory.Equipment;
|
||||
import com.habitrpg.android.habitica.models.inventory.Food;
|
||||
import com.habitrpg.android.habitica.models.inventory.HatchingPotion;
|
||||
import com.habitrpg.android.habitica.models.inventory.Equipment;
|
||||
import com.habitrpg.android.habitica.models.inventory.Mount;
|
||||
import com.habitrpg.android.habitica.models.inventory.Pet;
|
||||
import com.habitrpg.android.habitica.models.inventory.QuestContent;
|
||||
|
|
|
|||
|
|
@ -12,7 +12,6 @@ import com.habitrpg.android.habitica.models.inventory.Customization;
|
|||
|
||||
import java.lang.reflect.Type;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
|
|
|||
|
|
@ -5,12 +5,9 @@ import com.google.gson.JsonDeserializer;
|
|||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonParseException;
|
||||
import com.habitrpg.android.habitica.models.inventory.Customization;
|
||||
import com.habitrpg.android.habitica.models.inventory.Egg;
|
||||
import com.raizlabs.android.dbflow.sql.language.Select;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@ import com.google.gson.JsonParseException;
|
|||
import com.habitrpg.android.habitica.models.inventory.Equipment;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@ import com.google.gson.JsonParseException;
|
|||
import com.habitrpg.android.habitica.models.FAQArticle;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import io.realm.RealmList;
|
||||
|
|
|
|||
|
|
@ -5,12 +5,9 @@ import com.google.gson.JsonDeserializer;
|
|||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonParseException;
|
||||
import com.habitrpg.android.habitica.models.inventory.Customization;
|
||||
import com.habitrpg.android.habitica.models.inventory.Food;
|
||||
import com.raizlabs.android.dbflow.sql.language.Select;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@ import com.google.gson.JsonParseException;
|
|||
import com.habitrpg.android.habitica.models.inventory.HatchingPotion;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ import com.google.gson.JsonElement;
|
|||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonParseException;
|
||||
import com.habitrpg.android.habitica.models.inventory.Mount;
|
||||
import com.habitrpg.android.habitica.models.inventory.Pet;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.HashMap;
|
||||
|
|
@ -14,7 +13,6 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
|
||||
import io.realm.Realm;
|
||||
import io.realm.RealmList;
|
||||
|
||||
public class MountMapDeserializer implements JsonDeserializer<HashMap<String, Mount>> {
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -6,11 +6,9 @@ import com.google.gson.JsonElement;
|
|||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonParseException;
|
||||
import com.habitrpg.android.habitica.models.inventory.Food;
|
||||
import com.habitrpg.android.habitica.models.inventory.Mount;
|
||||
import com.habitrpg.android.habitica.models.inventory.Pet;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ import com.google.gson.JsonDeserializer;
|
|||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonParseException;
|
||||
import com.habitrpg.android.habitica.models.inventory.Mount;
|
||||
import com.habitrpg.android.habitica.models.inventory.Pet;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
|
|
|
|||
|
|
@ -5,15 +5,9 @@ import com.google.gson.JsonDeserializer;
|
|||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonParseException;
|
||||
import com.habitrpg.android.habitica.models.inventory.Customization;
|
||||
import com.habitrpg.android.habitica.models.inventory.QuestContent;
|
||||
import com.raizlabs.android.dbflow.runtime.TransactionManager;
|
||||
import com.raizlabs.android.dbflow.runtime.transaction.process.ProcessModelInfo;
|
||||
import com.raizlabs.android.dbflow.runtime.transaction.process.SaveModelTransaction;
|
||||
import com.raizlabs.android.dbflow.sql.language.Select;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
|
|
|||
|
|
@ -12,8 +12,6 @@ import java.util.ArrayList;
|
|||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import io.realm.RealmList;
|
||||
|
||||
/**
|
||||
* Created by viirus on 25/11/15.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ import com.google.gson.JsonSerializationContext;
|
|||
import com.google.gson.JsonSerializer;
|
||||
import com.habitrpg.android.habitica.models.Tag;
|
||||
import com.habitrpg.android.habitica.models.tasks.Task;
|
||||
import com.habitrpg.android.habitica.models.tasks.TaskTag;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
|
||||
|
|
|
|||
|
|
@ -5,8 +5,6 @@ import com.google.gson.JsonDeserializer;
|
|||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonParseException;
|
||||
import com.habitrpg.android.habitica.models.Tag;
|
||||
import com.habitrpg.android.habitica.models.tasks.TaskTag;
|
||||
import com.raizlabs.android.dbflow.sql.language.Select;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.ArrayList;
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ import com.google.gson.JsonParseException;
|
|||
import com.habitrpg.android.habitica.models.TutorialStep;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
|
|
|||
|
|
@ -1,11 +1,9 @@
|
|||
package com.habitrpg.android.habitica.helpers;
|
||||
|
||||
import com.habitrpg.android.habitica.HabitDatabase;
|
||||
import com.habitrpg.android.habitica.receivers.TaskReceiver;
|
||||
import com.habitrpg.android.habitica.models.tasks.Days;
|
||||
import com.habitrpg.android.habitica.models.tasks.RemindersItem;
|
||||
import com.habitrpg.android.habitica.models.tasks.Task;
|
||||
import com.raizlabs.android.dbflow.config.FlowManager;
|
||||
|
||||
import org.junit.After;
|
||||
import org.junit.Assert;
|
||||
|
|
@ -24,6 +22,9 @@ import java.util.ArrayList;
|
|||
import java.util.Calendar;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
import io.realm.RealmList;
|
||||
|
||||
/**
|
||||
* Created by keithholliday on 7/16/16.
|
||||
*/
|
||||
|
|
@ -43,7 +44,6 @@ public class TaskAlarmManagerTest {
|
|||
|
||||
@After
|
||||
public void tearDown() {
|
||||
FlowManager.getDatabase(HabitDatabase.NAME).reset(context);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -51,7 +51,7 @@ public class TaskAlarmManagerTest {
|
|||
Task task = new Task();
|
||||
task.setType(Task.TYPE_TODO);
|
||||
|
||||
List<RemindersItem> reminders = new ArrayList<RemindersItem>();
|
||||
RealmList<RemindersItem> reminders = new RealmList<>();
|
||||
RemindersItem remindersItem1 = new RemindersItem();
|
||||
UUID randomUUID = UUID.randomUUID();
|
||||
remindersItem1.setId(randomUUID.toString());
|
||||
|
|
@ -63,7 +63,6 @@ public class TaskAlarmManagerTest {
|
|||
reminders.add(remindersItem1);
|
||||
|
||||
task.setReminders(reminders);
|
||||
task.save();
|
||||
|
||||
taskAlarmManager.setAlarmsForTask(task);
|
||||
|
||||
|
|
@ -82,7 +81,7 @@ public class TaskAlarmManagerTest {
|
|||
Task task = new Task();
|
||||
task.setType(Task.TYPE_TODO);
|
||||
|
||||
List<RemindersItem> reminders = new ArrayList<RemindersItem>();
|
||||
RealmList<RemindersItem> reminders = new RealmList<>();
|
||||
RemindersItem remindersItem1 = new RemindersItem();
|
||||
UUID randomUUID = UUID.randomUUID();
|
||||
remindersItem1.setId(randomUUID.toString());
|
||||
|
|
@ -94,7 +93,6 @@ public class TaskAlarmManagerTest {
|
|||
reminders.add(remindersItem1);
|
||||
|
||||
task.setReminders(reminders);
|
||||
task.save();
|
||||
|
||||
taskAlarmManager.setAlarmsForTask(task);
|
||||
|
||||
|
|
@ -108,13 +106,11 @@ public class TaskAlarmManagerTest {
|
|||
Assert.assertEquals(true, alarmUp);
|
||||
|
||||
|
||||
reminders = new ArrayList<RemindersItem>();
|
||||
reminders = new RealmList<>();
|
||||
cal.set(Calendar.MINUTE, cal.get(Calendar.MINUTE) + 1);
|
||||
remindersItem1.setTime(cal.getTime());
|
||||
remindersItem1.save();
|
||||
reminders.add(remindersItem1);
|
||||
task.setReminders(reminders);
|
||||
task.save();
|
||||
|
||||
taskAlarmManager.setAlarmsForTask(task);
|
||||
int newAlarmId = reminders.get(0).getId().hashCode() & 0xfffffff;
|
||||
|
|
@ -132,14 +128,13 @@ public class TaskAlarmManagerTest {
|
|||
Task task = new Task();
|
||||
task.setType(Task.TYPE_TODO);
|
||||
|
||||
List<RemindersItem> reminders = new ArrayList<RemindersItem>();
|
||||
RealmList<RemindersItem> reminders = new RealmList<>();
|
||||
RemindersItem remindersItem1 = new RemindersItem();
|
||||
Calendar cal = Calendar.getInstance();
|
||||
cal.set(Calendar.MINUTE, cal.get(Calendar.MINUTE) + 1);
|
||||
remindersItem1.setTime(cal.getTime());
|
||||
reminders.add(remindersItem1);
|
||||
task.setReminders(reminders);
|
||||
task.save();
|
||||
|
||||
// taskAlarmManager.setAlarmsForTask(task);
|
||||
//
|
||||
|
|
@ -180,7 +175,7 @@ public class TaskAlarmManagerTest {
|
|||
taskRepeatDays.setSu(false);
|
||||
task.setRepeat(taskRepeatDays);
|
||||
|
||||
List<RemindersItem> reminders = new ArrayList<RemindersItem>();
|
||||
RealmList<RemindersItem> reminders = new RealmList<>();
|
||||
RemindersItem remindersItem1 = new RemindersItem();
|
||||
UUID randomUUID = UUID.randomUUID();
|
||||
remindersItem1.setId(randomUUID.toString());
|
||||
|
|
@ -194,7 +189,6 @@ public class TaskAlarmManagerTest {
|
|||
reminders.add(remindersItem1);
|
||||
|
||||
task.setReminders(reminders);
|
||||
task.save();
|
||||
|
||||
taskAlarmManager.setAlarmsForTask(task);
|
||||
|
||||
|
|
@ -230,7 +224,7 @@ public class TaskAlarmManagerTest {
|
|||
taskRepeatDays.setSu(false);
|
||||
task.setRepeat(taskRepeatDays);
|
||||
|
||||
List<RemindersItem> reminders = new ArrayList<RemindersItem>();
|
||||
RealmList<RemindersItem> reminders = new RealmList<>();
|
||||
RemindersItem remindersItem1 = new RemindersItem();
|
||||
UUID randomUUID = UUID.randomUUID();
|
||||
remindersItem1.setId(randomUUID.toString());
|
||||
|
|
@ -242,7 +236,6 @@ public class TaskAlarmManagerTest {
|
|||
reminders.add(remindersItem1);
|
||||
|
||||
task.setReminders(reminders);
|
||||
task.save();
|
||||
|
||||
taskAlarmManager.setAlarmsForTask(task);
|
||||
|
||||
|
|
@ -270,7 +263,7 @@ public class TaskAlarmManagerTest {
|
|||
int everyXDay = 2;
|
||||
task.setEveryX(everyXDay);
|
||||
|
||||
List<RemindersItem> reminders = new ArrayList<RemindersItem>();
|
||||
RealmList<RemindersItem> reminders = new RealmList<>();
|
||||
RemindersItem remindersItem1 = new RemindersItem();
|
||||
UUID randomUUID = UUID.randomUUID();
|
||||
remindersItem1.setId(randomUUID.toString());
|
||||
|
|
@ -289,7 +282,6 @@ public class TaskAlarmManagerTest {
|
|||
reminders.add(remindersItem1);
|
||||
|
||||
task.setReminders(reminders);
|
||||
task.save();
|
||||
|
||||
taskAlarmManager.setAlarmsForTask(task);
|
||||
|
||||
|
|
@ -322,7 +314,7 @@ public class TaskAlarmManagerTest {
|
|||
int everyXDay = 2;
|
||||
task.setEveryX(everyXDay);
|
||||
|
||||
List<RemindersItem> reminders = new ArrayList<>();
|
||||
RealmList<RemindersItem> reminders = new RealmList<>();
|
||||
RemindersItem remindersItem1 = new RemindersItem();
|
||||
UUID randomUUID = UUID.randomUUID();
|
||||
remindersItem1.setId(randomUUID.toString());
|
||||
|
|
@ -335,7 +327,6 @@ public class TaskAlarmManagerTest {
|
|||
reminders.add(remindersItem1);
|
||||
|
||||
task.setReminders(reminders);
|
||||
task.save();
|
||||
|
||||
taskAlarmManager.setAlarmsForTask(task);
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ buildscript {
|
|||
jcenter()
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:2.3.1'
|
||||
classpath 'com.android.tools.build:gradle:2.3.2'
|
||||
classpath 'com.android.databinding:dataBinder:1.0-rc4'
|
||||
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
|
||||
classpath 'com.google.gms:google-services:3.0.0'
|
||||
|
|
|
|||
Loading…
Reference in a new issue