mirror of
https://github.com/OMGeeky/andors-trail.git
synced 2026-02-23 15:38:29 +01:00
Fixes for the most "popular" and puzzling crashes on GPlay,
supposedly caused by extreme race conditions.
This commit is contained in:
@@ -308,7 +308,7 @@ public final class MainActivity
|
||||
|
||||
|
||||
@Override
|
||||
public void onPlayerMoved(Coord newPosition, Coord previousPosition) { }
|
||||
public void onPlayerMoved(PredefinedMap map, Coord newPosition, Coord previousPosition) { }
|
||||
|
||||
@Override
|
||||
public void onPlayerEnteredNewMap(PredefinedMap map, Coord p) { }
|
||||
|
||||
@@ -79,6 +79,9 @@ public final class HeroinfoActivity_Inventory extends Fragment implements Custom
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
final View v = inflater.inflate(R.layout.heroinfo_inventory, container, false);
|
||||
|
||||
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this.getActivity());
|
||||
if (!app.isInitialized()) return v;
|
||||
|
||||
inventoryList = (ListView) v.findViewById(R.id.inventorylist_root);
|
||||
ImageView heroicon = (ImageView) v.findViewById(R.id.heroinfo_inventory_heroicon);
|
||||
heroinfo_stats_gold = (TextView) v.findViewById(R.id.heroinfo_stats_gold);
|
||||
|
||||
@@ -51,7 +51,10 @@ public final class HeroinfoActivity_Quests extends Fragment {
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
View v = inflater.inflate(R.layout.questlog, container, false);
|
||||
|
||||
|
||||
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this.getActivity());
|
||||
if (!app.isInitialized()) return v;
|
||||
|
||||
Context ctx = getActivity();
|
||||
|
||||
|
||||
|
||||
@@ -48,7 +48,10 @@ public final class HeroinfoActivity_Skills extends Fragment {
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
View v = inflater.inflate(R.layout.heroinfo_skill_list, container, false);
|
||||
|
||||
|
||||
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this.getActivity());
|
||||
if (!app.isInitialized()) return v;
|
||||
|
||||
final Activity ctx = getActivity();
|
||||
|
||||
new SpinnerEmulator(v,R.id.skillList_category_filters_button, R.array.skill_category_filters, R.string.heroinfo_skill_categories) {
|
||||
|
||||
@@ -67,10 +67,14 @@ public final class HeroinfoActivity_Stats extends Fragment {
|
||||
View v = inflater.inflate(R.layout.heroinfo_stats, container, false);
|
||||
view = v;
|
||||
|
||||
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this.getActivity());
|
||||
if (!app.isInitialized()) return v;
|
||||
|
||||
TextView tv = (TextView) v.findViewById(R.id.heroinfo_title);
|
||||
tv.setText(player.getName());
|
||||
tv.setCompoundDrawablesWithIntrinsicBounds(HeroCollection.getHeroLargeSprite(player.iconID), 0, 0, 0);
|
||||
|
||||
if (tv != null) {
|
||||
tv.setText(player.getName());
|
||||
tv.setCompoundDrawablesWithIntrinsicBounds(HeroCollection.getHeroLargeSprite(player.iconID), 0, 0, 0);
|
||||
}
|
||||
heroinfo_container = (ViewGroup) v.findViewById(R.id.heroinfo_container);
|
||||
heroinfo_reequip_cost = (TextView) v.findViewById(R.id.heroinfo_reequip_cost);
|
||||
heroinfo_useitem_cost = (TextView) v.findViewById(R.id.heroinfo_useitem_cost);
|
||||
|
||||
@@ -246,7 +246,7 @@ public final class MovementController implements TimedMessageTask.Callback {
|
||||
@Override
|
||||
public void onVisualEffectCompleted(int callbackValue) {
|
||||
|
||||
playerMovementListeners.onPlayerMoved(newPosition, player.lastPosition);
|
||||
playerMovementListeners.onPlayerMoved(currentMap, newPosition, player.lastPosition);
|
||||
controllers.mapController.handleMapEventsAfterMovement(currentMap, newPosition, player.lastPosition);
|
||||
|
||||
if (!world.model.uiSelections.isInCombat) {
|
||||
|
||||
@@ -4,6 +4,6 @@ import com.gpl.rpg.AndorsTrail.model.map.PredefinedMap;
|
||||
import com.gpl.rpg.AndorsTrail.util.Coord;
|
||||
|
||||
public interface PlayerMovementListener {
|
||||
void onPlayerMoved(Coord newPosition, Coord previousPosition);
|
||||
void onPlayerMoved(PredefinedMap map, Coord newPosition, Coord previousPosition);
|
||||
void onPlayerEnteredNewMap(PredefinedMap map, Coord p);
|
||||
}
|
||||
|
||||
@@ -6,8 +6,8 @@ import com.gpl.rpg.AndorsTrail.util.ListOfListeners;
|
||||
|
||||
public final class PlayerMovementListeners extends ListOfListeners<PlayerMovementListener> implements PlayerMovementListener {
|
||||
|
||||
private final Function2<PlayerMovementListener, Coord, Coord> onPlayerMoved = new Function2<PlayerMovementListener, Coord, Coord>() {
|
||||
@Override public void call(PlayerMovementListener listener, Coord newPosition, Coord previousPosition) { listener.onPlayerMoved(newPosition, previousPosition); }
|
||||
private final Function3<PlayerMovementListener, PredefinedMap, Coord, Coord> onPlayerMoved = new Function3<PlayerMovementListener, PredefinedMap, Coord, Coord>() {
|
||||
@Override public void call(PlayerMovementListener listener, PredefinedMap map, Coord newPosition, Coord previousPosition) { listener.onPlayerMoved(map, newPosition, previousPosition); }
|
||||
};
|
||||
|
||||
private final Function2<PlayerMovementListener, PredefinedMap, Coord> onPlayerEnteredNewMap = new Function2<PlayerMovementListener, PredefinedMap, Coord>() {
|
||||
@@ -15,8 +15,8 @@ public final class PlayerMovementListeners extends ListOfListeners<PlayerMovemen
|
||||
};
|
||||
|
||||
@Override
|
||||
public void onPlayerMoved(Coord newPosition, Coord previousPosition) {
|
||||
callAllListeners(this.onPlayerMoved, newPosition, previousPosition);
|
||||
public void onPlayerMoved(PredefinedMap map, Coord newPosition, Coord previousPosition) {
|
||||
callAllListeners(this.onPlayerMoved, map, newPosition, previousPosition);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -665,7 +665,8 @@ public final class MainView extends SurfaceView
|
||||
|
||||
|
||||
@Override
|
||||
public void onPlayerMoved(Coord newPosition, Coord previousPosition) {
|
||||
public void onPlayerMoved(PredefinedMap map, Coord newPosition, Coord previousPosition) {
|
||||
if (map != currentMap) return;
|
||||
recalculateMapTopLeft(newPosition, preferences.enableUiAnimations);
|
||||
redrawAll(RedrawAllDebugReason.PlayerMoved);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user