11package com .unixity .gagstock ;
22
33import android .annotation .SuppressLint ;
4+ import android .app .ActivityManager ;
45import android .content .Context ;
56import android .content .Intent ;
67import android .content .SharedPreferences ;
78import android .graphics .Color ;
89import android .graphics .Typeface ;
9- import android .net .ConnectivityManager ;
10- import android .net .Network ;
1110import android .net .Uri ;
1211import android .os .Bundle ;
1312import android .util .Log ;
2928import androidx .core .view .WindowInsetsCompat ;
3029import androidx .viewpager2 .widget .ViewPager2 ;
3130
32- import com .android .volley .Request ;
33- import com .android .volley .RequestQueue ;
34- import com .android .volley .toolbox .JsonArrayRequest ;
35- import com .android .volley .toolbox .Volley ;
36-
3731import org .json .JSONArray ;
3832import org .json .JSONObject ;
3933
@@ -52,6 +46,7 @@ public class MainActivity extends AppCompatActivity {
5246 private LinearLayout scrollContent ;
5347 private ScrollView scrollContainer ;
5448 private TextView loading ;
49+ private SharedPreferences prefs ;
5550
5651 @ SuppressLint ("SetTextI18n" )
5752 @ Override
@@ -64,10 +59,16 @@ protected void onCreate(Bundle savedInstanceState) {
6459 v .setPadding (systemBars .left , systemBars .top , systemBars .right , systemBars .bottom );
6560 return insets ;
6661 });
67-
68- Intent serviceIntent = new Intent (this , BackgroundService .class );
69- ContextCompat .startForegroundService (this , serviceIntent );
70- SharedPreferences prefs = getSharedPreferences ("notif_prefs" , MODE_PRIVATE );
62+ if (!isMyServiceRunning ()) {
63+ Intent serviceIntent = new Intent (this , BackgroundService .class );
64+ ContextCompat .startForegroundService (this , serviceIntent );
65+ }
66+ prefs = getSharedPreferences ("prefs" , MODE_PRIVATE );
67+ if (prefs .getInt ("dcid" , 0 ) == 0 )
68+ {
69+ Intent discordIntent = new Intent (MainActivity .this , IdActivity .class );
70+ startActivity (discordIntent );
71+ }
7172 scrollContent = findViewById (R .id .scrollContent );
7273 scrollContainer = findViewById (R .id .scrollContainer );
7374 loading = findViewById (R .id .loading );
@@ -116,52 +117,83 @@ protected void onCreate(Bundle savedInstanceState) {
116117 fetchAndDisplaySeeds ();
117118 }
118119
120+ private boolean isMyServiceRunning () {
121+ ActivityManager manager = (ActivityManager ) getSystemService (Context .ACTIVITY_SERVICE );
122+ for (ActivityManager .RunningServiceInfo service : manager .getRunningServices (Integer .MAX_VALUE )) {
123+ if (BackgroundService .class .getName ().equals (service .service .getClassName ())) {
124+ return true ;
125+ }
126+ }
127+ return false ;
128+ }
129+
119130 private void fetchAndDisplaySeeds () {
120- String infoUrl = "https://growagardenapi.vercel.app/api/item-info" ;
131+ // String infoUrl = "https://growagardenapi.vercel.app/api/item-info";
121132 loading .setText (R .string .load );
122- RequestQueue queue = Volley .newRequestQueue (this );
123-
124- JsonArrayRequest infoRequest = new JsonArrayRequest (Request .Method .GET , infoUrl , null ,
125- infoResponse -> {
126- try {
127- List <String > seedOrder = new ArrayList <>();
128-
129- for (int i = 0 ; i < infoResponse .length (); i ++) {
130- JSONObject item = infoResponse .getJSONObject (i );
131- if ("Fruits" .equals (item .optString ("category" ))) {
132- seedOrder .add (item .getString ("name" ));
133- }
134- }
135-
136- final ConnectivityManager cm = (ConnectivityManager ) getSystemService (Context .CONNECTIVITY_SERVICE );
137- cm .registerDefaultNetworkCallback (new ConnectivityManager .NetworkCallback () {
138- @ Override
139- public void onAvailable (@ NonNull Network network ) {
140- Log .d ("Network" , "Connected: " + network );
141- connectToEndpoint (seedOrder );
142- }
143-
144- @ Override
145- public void onLost (@ NonNull Network network ) {
146- Log .d ("Network" , "Disconnected" );
147- }
148- });
149- connectToEndpoint (seedOrder );
150- } catch (Exception e ) {
151- Log .e ("INFO_PARSE" , "Error parsing item info" , e );
152- }
153- },
154- error -> Log .e ("INFO_API" , "Failed to load item info" , error )
155- );
133+ // RequestQueue queue = Volley.newRequestQueue(this);
134+ List <String > seedOrder = getStrings ();
135+ // JsonArrayRequest infoRequest = new JsonArrayRequest(Request.Method.GET, infoUrl, null,
136+ // infoResponse -> {
137+ // try {
138+ //
139+ // for (int i = 0; i < infoResponse.length(); i++) {
140+ // JSONObject item = infoResponse.getJSONObject(i);
141+ // if ("Fruits".equals(item.optString("category"))) {
142+ // seedOrder.add(item.getString("name"));
143+ // }
144+ // }
145+ //
146+ // final ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
147+ // cm.registerDefaultNetworkCallback(new ConnectivityManager.NetworkCallback() {
148+ // @Override
149+ // public void onAvailable(@NonNull Network network) {
150+ // Log.d("Network", "Connected: " + network);
151+ // connectToEndpoint(seedOrder);
152+ // }
153+ //
154+ // @Override
155+ // public void onLost(@NonNull Network network) {
156+ // Log.d("Network", "Disconnected");
157+ // }
158+ // });
159+ //
160+ // } catch (Exception e) {
161+ // Log.e("INFO_PARSE", "Error parsing item info", e);
162+ // }
163+ // },
164+ // error -> Log.e("INFO_API", "Failed to load item info", error)
165+ // );
166+ connectToEndpoint (seedOrder );
167+ // queue.add(infoRequest);
168+ }
156169
157- queue .add (infoRequest );
170+ @ NonNull
171+ private static List <String > getStrings () {
172+ List <String > seedOrder = new ArrayList <>();
173+ seedOrder .add ("Carrot" );
174+ seedOrder .add ("Strawberry" );
175+ seedOrder .add ("Blueberry" );
176+ seedOrder .add ("Tomato" );
177+ seedOrder .add ("Cauliflower" );
178+ seedOrder .add ("Watermelon" );
179+ seedOrder .add ("Green Apple" );
180+ seedOrder .add ("Avocado" );
181+ seedOrder .add ("Banana" );
182+ seedOrder .add ("Pineapple" );
183+ seedOrder .add ("Kiwi" );
184+ seedOrder .add ("Bell Pepper" );
185+ seedOrder .add ("Prickly Pear" );
186+ seedOrder .add ("Loquat" );
187+ seedOrder .add ("Feijoa" );
188+ seedOrder .add ("Sugar Apple" );
189+ return seedOrder ;
158190 }
159191
160192 private void connectToEndpoint (List <String > seedOrder ) {
161193 OkHttpClient client = new OkHttpClient ();
162194
163195 okhttp3 .Request request = new okhttp3 .Request .Builder ()
164- .url ("wss://websocket.joshlei.com/growagarden/" )
196+ .url ("wss://websocket.joshlei.com/growagarden?user_id=" + prefs . getInt ( "dcid" , 0 ) )
165197 .build ();
166198
167199 client .newWebSocket (request , new WebSocketListener () {
@@ -185,9 +217,6 @@ public void onMessage(WebSocket webSocket, String text) {
185217 for (int i = 0 ; i < seedStock .length (); i ++) {
186218 JSONObject seed = seedStock .getJSONObject (i );
187219 stockMap .put (seed .getString ("display_name" ), seed );
188- if (seed .getString ("display_name" ).equals ("a" )) {
189-
190- }
191220 }
192221
193222 runOnUiThread (() -> {
@@ -238,7 +267,9 @@ private void addSeedCard(String name, String stock, String imageUrl) {
238267 imageParams .setMargins (0 , 0 , 16 , 0 );
239268 image .setLayoutParams (imageParams );
240269 image .setScaleType (ImageView .ScaleType .CENTER_CROP );
241- Glide .with (this ).load (imageUrl ).into (image );
270+ if (!isFinishing () && !isDestroyed ()) {
271+ Glide .with (this ).load (imageUrl ).into (image );
272+ }
242273
243274 LinearLayout textLayout = new LinearLayout (this );
244275 textLayout .setOrientation (LinearLayout .VERTICAL );
0 commit comments