Skip to content

Commit

Permalink
added heat map suppport
Browse files Browse the repository at this point in the history
  • Loading branch information
adya1904 committed Mar 27, 2020
1 parent 3d4ee17 commit 0f1a5db
Show file tree
Hide file tree
Showing 21 changed files with 426 additions and 88 deletions.
2 changes: 1 addition & 1 deletion app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ android {
minSdkVersion 23
targetSdkVersion 29
versionCode 1
versionName "1.3"
versionName "1.5"

compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
</intent-filter>
</activity>
<activity android:name=".About" />

<activity android:name=".HeatMap"/>
<service
android:name=".APIService"
android:enabled="true"
Expand Down
53 changes: 53 additions & 0 deletions app/src/main/java/india/coronavirus/fight/HeatMap.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
package india.coronavirus.fight;

import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ProgressBar;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

public class HeatMap extends AppCompatActivity {
private ProgressBar progressBar;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_web);

WebView webView = findViewById(R.id.web);
progressBar = findViewById(R.id.progress_bar);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setPluginState(WebSettings.PluginState.ON);
webView.setWebViewClient(new webViewClient());
webView.loadUrl("http://ac41bf31.ngrok.io/india");
}

public class webViewClient extends WebViewClient {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
// TODO Auto-generated method stub
super.onPageStarted(view, url, favicon);
}

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
progressBar.setVisibility(View.VISIBLE);
view.loadUrl(url);
return true;

}

@Override
public void onPageFinished(WebView view, String url) {
// TODO Auto-generated method stub
super.onPageFinished(view, url);
progressBar.setVisibility(View.GONE);
}
}
}
42 changes: 42 additions & 0 deletions app/src/main/java/india/coronavirus/fight/MainActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import com.google.firebase.firestore.FirebaseFirestore;
import com.onesignal.OneSignal;

import java.util.ArrayList;
import java.util.Objects;

public class MainActivity extends AppCompatActivity {
Expand All @@ -34,13 +35,17 @@ public class MainActivity extends AppCompatActivity {
private SharedPreferences.Editor editor;
private String new_version;
private String newVersion;
private Thread thread;
private ArrayList<String> quoteList = new ArrayList<>();
private Integer i = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

BottomNavigationView navView = findViewById(R.id.nav_view);
MaterialTextView quotetext = findViewById(R.id.quoteText);
MaterialTextView textView = findViewById(R.id.marquee);
textView.setSelected(true);
OneSignal.startInit(this)
Expand All @@ -51,12 +56,15 @@ protected void onCreate(Bundle savedInstanceState) {
SharedPreferences sharedPreferences = this.getSharedPreferences("API", MODE_PRIVATE);
editor = sharedPreferences.edit();


CollectionReference apiCollection = FirebaseFirestore.getInstance().collection("apilink");
apiCollection.addSnapshotListener((queryDocumentSnapshots, e) -> {
if (queryDocumentSnapshots != null) {
for (DocumentChange documentChange : queryDocumentSnapshots.getDocumentChanges()) {
api = documentChange.getDocument().getString("api");
new_version = documentChange.getDocument().getString("version");
boolean showgraph = documentChange.getDocument().getBoolean("showgraph");
editor.putBoolean("showgraph", showgraph);
editor.putString("new_version", version);
editor.putString("API", api);
editor.apply();
Expand Down Expand Up @@ -84,6 +92,40 @@ protected void onCreate(Bundle savedInstanceState) {
startActivity(intent);
}
});
quoteList.add("Don't Hoard groceries and essentials. Please ensure that people who are in need don't face a shortage because of you!");
quoteList.add("Plan ahead! Take a minute and check how much you have at home. Planning ahead let's you buy exactly what you need!");
quoteList.add("If you have symptoms and suspect you have coronavirus - reach out to your doctor or call state helplines. \uD83D\uDCDE Get help.");
quoteList.add("Panic mode : OFF! ❌ ESSENTIALS ARE ON! ✔️");
quoteList.add("Help out the elderly by bringing them their groceries and other essentials.");
quoteList.add("Be considerate : While buying essentials remember : You need to share with 130 Crore Others! ");
quoteList.add("Stand Against FAKE News and WhatsApp Forwards! Do NOT ❌ forward a message until you verify the content it contains.");
quoteList.add("Be compassionate! Help those in need like the elderly and poor. They are facing a crisis you cannot even imagine! ");

thread = new Thread() {
@Override
public void run() {
try {
while (!thread.isInterrupted()) {
Thread.sleep(5000);
runOnUiThread(new Runnable() {
@Override
public void run() {
if (i < quoteList.size()) {
quotetext.setText(quoteList.get(i));
i++;
} else {
i = 0;
}
}
});
}
} catch (InterruptedException ignored) {
}
}
};
thread.start();


}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,14 @@
package india.coronavirus.fight.dataAdapter;

import android.annotation.SuppressLint;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.res.ColorStateList;
import android.graphics.Color;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebView;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
Expand All @@ -19,9 +24,12 @@
import india.coronavirus.fight.R;
import india.coronavirus.fight.model.HeaderData;

import static android.content.Context.MODE_PRIVATE;

public class DataAdapterMain extends RecyclerView.Adapter<DataAdapterMain.ViewHolder> {
private List<HeaderData> headerDataList;
private Context mContext;
private SharedPreferences sharedPreferences ;

public DataAdapterMain(ArrayList<HeaderData> headerDatalist, Context context) {
this.headerDataList = headerDatalist;
Expand All @@ -35,9 +43,47 @@ public DataAdapterMain.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent,
return new ViewHolder(view);
}

@SuppressLint("ResourceAsColor")
@Override
public void onBindViewHolder(@NonNull DataAdapterMain.ViewHolder holder, int position) {
// Toast.makeText(mContext, String.valueOf(position), Toast.LENGTH_SHORT).show();
sharedPreferences = mContext.getSharedPreferences("API", MODE_PRIVATE);
if (!sharedPreferences.getBoolean("showgraph",true)) {
holder.grahView.setVisibility(View.GONE);
}
HeaderData headerData = headerDataList.get(position);
holder.grahView.setScrollbarFadingEnabled(true);
holder.grahView.setVerticalScrollBarEnabled(false);
holder.grahView.setHorizontalScrollBarEnabled(false);
if (headerData.getHeader().trim().equals("CONFIRMED")) {
holder.grahView.loadUrl("http://ac41bf31.ngrok.io/api/graphsvg/cases");
} else if (headerData.getHeader().trim().equals("ACTIVE")) {
holder.grahView.loadUrl("http://ac41bf31.ngrok.io/api/graphsvg/active");
} else if (headerData.getHeader().trim().equals("RECOVERED")) {
holder.grahView.loadUrl("http://ac41bf31.ngrok.io/api/graphsvg/cured");
} else if (headerData.getHeader().trim().equals("DEATH")) {
holder.grahView.loadUrl("http://ac41bf31.ngrok.io/api/graphsvg/death");
}
if (headerData.getColor().trim().equals("red")) {
holder.heading_card.setBackgroundTintList(ColorStateList.valueOf(Color.parseColor("#34FB0032")));
holder.heading_card.setTextColor(Color.parseColor("#B0FB0032"));
holder.total_case.setTextColor(Color.parseColor("#B0FB0032"));
holder.new_case.setTextColor(Color.parseColor("#B0FB0032"));
} else if (headerData.getColor().trim().equals("green")) {
holder.heading_card.setBackgroundTintList(ColorStateList.valueOf(Color.parseColor("#2748A107")));
holder.heading_card.setTextColor(Color.parseColor("#D348A107"));
holder.total_case.setTextColor(Color.parseColor("#D348A107"));
holder.new_case.setTextColor(Color.parseColor("#D348A107"));
} else if (headerData.getColor().trim().equals("blue")) {
holder.heading_card.setBackgroundTintList(ColorStateList.valueOf(Color.parseColor("#2000C5F6")));
holder.heading_card.setTextColor(Color.parseColor("#D300C5F6"));
holder.total_case.setTextColor(Color.parseColor("#D300C5F6"));
holder.new_case.setTextColor(Color.parseColor("#D300C5F6"));
} else if (headerData.getColor().trim().equals("gray")) {
holder.heading_card.setBackgroundTintList(ColorStateList.valueOf(Color.parseColor("#22828383")));
holder.heading_card.setTextColor(Color.parseColor("#D0828383"));
holder.total_case.setTextColor(Color.parseColor("#D0828383"));
holder.new_case.setTextColor(Color.parseColor("#D0828383"));
}
holder.heading_card.setText(headerDataList.get(position).getHeader());
holder.total_case.setText(headerDataList.get(position).getCases());
holder.sub_heading_1.setText(headerDataList.get(position).getSubheader());
Expand All @@ -60,6 +106,8 @@ public static class ViewHolder extends RecyclerView.ViewHolder {
MaterialTextView sub_heading_1;
@BindView(R.id.subheading2)
MaterialTextView sub_heading_2;
@BindView(R.id.graph)
WebView grahView;

public ViewHolder(@NonNull View itemView) {
super(itemView);
Expand Down
11 changes: 10 additions & 1 deletion app/src/main/java/india/coronavirus/fight/model/HeaderData.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,22 @@ public class HeaderData {
private String header;
private String subheader;
private String newcase;
private String color;

public HeaderData(String cases, String header, String subheader, String new_case) {
public HeaderData(String cases, String header, String subheader, String new_case, String color) {
this.cases = cases;
this.header = header;
this.subheader = subheader;
this.newcase = new_case;
this.color = color;
}

public String getColor() {
return color;
}

public void setColor(String color) {
this.color = color;
}

public String getNewcase() {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package india.coronavirus.fight.ui.heatmap;

import android.annotation.SuppressLint;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ProgressBar;

import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;

import butterknife.BindView;
import butterknife.ButterKnife;
import india.coronavirus.fight.R;

public class HeatMapFrgament extends Fragment {

@BindView(R.id.progress_bar)
ProgressBar progressBar;
@BindView(R.id.web)
WebView webView;

@SuppressLint("SetJavaScriptEnabled")
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {

View root = inflater.inflate(R.layout.fragment_web, container, false);
ButterKnife.bind(this, root);
progressBar.setVisibility(View.VISIBLE);

webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setPluginState(WebSettings.PluginState.ON);
webView.loadUrl("http://ac41bf31.ngrok.io/india");
webView.setWebViewClient(new WebViewClient());
return root;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public class HelplineFragment extends Fragment {

private HelplineViewModel notificationsViewModel;
private ArrayList<ArrayList<StateData>> headerDatalist = new ArrayList<>();
;

@BindView(R.id.recyclerView)
RecyclerView recyclerView;
@BindView(R.id.progress_bar)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,19 +67,20 @@ public void refreshData() {
JSONObject json = new JSONObject(response1);
Log.d("response", String.valueOf(json));
String filtered = "{\"stats\": [{\"stat1\":\"" + json.getInt("cases") +
"\"," + "\"oldcount\":\"" + new_cases + "\",\"heading\":\"Total CASES\",\"subheading\":Total}," +
"\"," + "\"oldcount\":\"" + new_cases + "\",\"heading\":\"CONFIRMED\",\"subheading\":Total,\"color\":red}," +
"{\"stat1\":\"" + json.getInt("hospitalized") +
"\"," + "\"oldcount\":\"" + oldhospitalized + "\",\"heading\":\"ACTIVE\",\"subheading\":Active,\"color\":blue}," +
"{\"stat1\":\"" + json.getInt("cured") +
"\"," + "\"oldcount\":\"" + new_cured + "\",\"heading\":\"Recovered CASES\",\"subheading\":Recovered}," +
"\"," + "\"oldcount\":\"" + new_cured + "\",\"heading\":\"RECOVERED\",\"subheading\":Recovered,\"color\":green}," +
"{\"stat1\":\"" + json.getInt("death") +
"\"," + "\"oldcount\":\"" + new_death + "\",\"heading\":\"Death CASES\",\"subheading\":Deaths}," +
"{\"stat1\":\"" + json.getInt("hospitalized") +
"\"," + "\"oldcount\":\"" + oldhospitalized + "\",\"heading\":\"Hospitalized CASES\",\"subheading\":Hospitalized}]}";
"\"," + "\"oldcount\":\"" + new_death + "\",\"heading\":\"DEATH\",\"subheading\":Deaths,\"color\":gray}]}";

JSONObject jsonObject2 = new JSONObject(filtered);
JSONArray jsonArray = jsonObject2.getJSONArray("stats");
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject1 = jsonArray.getJSONObject(i);
headerData.add(new HeaderData(jsonObject1.getString("stat1"), jsonObject1.getString("heading"), jsonObject1.getString("subheading"), jsonObject1.getString("oldcount")));
headerData.add(new HeaderData(jsonObject1.getString("stat1"), jsonObject1.getString("heading"), jsonObject1.getString("subheading"), jsonObject1.getString("oldcount"),
jsonObject1.getString("color")));
dataMutableLiveData.setValue(headerData);
}
} catch (JSONException e) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
package india.coronavirus.fight.ui.statewise;

import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.Toast;

import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
Expand All @@ -16,9 +17,9 @@
import java.util.ArrayList;
import java.util.Objects;

import butterknife.BindDimen;
import butterknife.BindView;
import butterknife.ButterKnife;
import india.coronavirus.fight.HeatMap;
import india.coronavirus.fight.R;
import india.coronavirus.fight.dataAdapter.StateAdapter;
import india.coronavirus.fight.model.StateData;
Expand All @@ -30,13 +31,14 @@ public class StateFragment extends Fragment {
RecyclerView recyclerView;
@BindView(R.id.progress_bar)
ProgressBar progressBar;

@BindView(R.id.quote_layout)
LinearLayout linearLayout;
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {

StateViewModel stateViewModel = ViewModelProviders.of(this).get(StateViewModel.class);

View root = inflater.inflate(R.layout.fragment_home, container, false);
View root = inflater.inflate(R.layout.fragment_statewise, container, false);
ButterKnife.bind(this, root);
progressBar.setVisibility(View.VISIBLE);
StateAdapter stateAdapter = new StateAdapter(stateDatalist, getContext());
Expand All @@ -51,6 +53,14 @@ public View onCreateView(@NonNull LayoutInflater inflater,
progressBar.setVisibility(View.GONE);
}
});

linearLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getContext(), HeatMap.class);
startActivity(intent);
}
});
return root;
}

Expand Down
Loading

0 comments on commit 0f1a5db

Please sign in to comment.