Here's my java from 'different java file' :
public class MainPage extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {
ArrayList<HashMap<String, String>> Item_List;
TabLayout tabLayout;
ViewPageAdapter viewPageAdapter;
ViewPager viewPager;
ImageView pfp;
ProgressDialog PD_three;
Bitmap bitmap;
TextView usernameToolbar;
Intent postActivity;
Bitmap cropImg;
private int PICK_IMAGE_REQUEST = 1;
private String KEY_IMAGE = "ProfilePicture";
private String KEY_NAME = "Name";
private String KEY_USERTOKEN = "UserToken";
private String UserToken;
final int CROP_PIC_REQUEST_CODE = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_page);
initTypeface();
PD_three = new ProgressDialog(this);
PD_three.setCancelable(false);
PD_three.setTitle("Please Wait...");
PD_three.setMessage("Retrieving Data from Database...");
getProfileInfo();
String username = getIntent().getStringExtra("Username");
TextView tv = (TextView) findViewById(R.id.usernameND);
tv.setText(username);
//id's
pfp = (ImageView) findViewById(R.id.imageView_one);
//SearchIntent
Intent searchI = getIntent();
if (Intent.ACTION_SEARCH.equals(searchI.getAction())) {
String query = searchI.getStringExtra(SearchManager.QUERY);
Toast.makeText(MainPage.this, query, Toast.LENGTH_SHORT).show();
}
//Toolbar
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setTitle(null);
//Tabs
tabLayout = (TabLayout) findViewById(R.id.tablayout_two);
viewPager = (ViewPager) findViewById(R.id.viewPager_two);
viewPageAdapter = new ViewPageAdapter(getSupportFragmentManager());
viewPageAdapter.addFragments(new FeedFragment(), "Feed");
viewPageAdapter.addFragments(new MessagesFragment(), "Messages");
viewPageAdapter.addFragments(new NotificationsFragment(), "Notifications");
viewPager.setAdapter(viewPageAdapter);
tabLayout.setupWithViewPager(viewPager);
//NavigationDrawer
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
}
@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}
@Override
public boolean onNavigationItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.profile) {
Intent i = new Intent(this, Profile.class);
startActivity(i);
} else if (id == R.id.whatshot) {
Intent i = new Intent(this, WhatsHot.class);
startActivity(i);
} else if (id == R.id.trending) {
Intent i = new Intent(this, Trending.class);
startActivity(i);
} else if (id == R.id.radioplayer) {
Intent i = new Intent(this, Radio.class);
startActivity(i);
} else if (id == R.id.musicplayer) {
Intent i = new Intent(this, MusicPlayer.class);
startActivity(i);
} else if (id == R.id.settings) {
Intent i = new Intent(this, Settings.class);
startActivity(i);
} else if (id == R.id.info) {
Intent i = new Intent(this, Info.class);
startActivity(i);
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main_menu, menu);
SearchView searchView = (SearchView) menu.findItem(R.id.search_view).getActionView();
SearchManager searchManager = (SearchManager) getSystemService(SEARCH_SERVICE);
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
return super.onCreateOptionsMenu(menu);
}
//ImageInfo
//Typeface
private void initTypeface() {
Typeface myTypeface = Typeface.createFromAsset(getAssets(), "fonts/Amble-Regular.ttf");
TextView text = (TextView) findViewById(R.id.toolbarTitle);
text.setTypeface(myTypeface);
myTypeface = Typeface.createFromAsset(getAssets(), "fonts/Amble-Regular.ttf");
text = (TextView) findViewById(R.id.usernameND);
text.setTypeface(myTypeface);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.v(MainPage.class.getSimpleName(), "hey=" + requestCode + resultCode);
if (resultCode == CROP_PIC_REQUEST_CODE || resultCode == 2 || resultCode == -1) {
if (requestCode == CROP_PIC_REQUEST_CODE) {
if (data != null) {
Bundle extras = data.getExtras();
Bitmap image = extras.getParcelable("data");
pfp.setImageBitmap(image);
UploadImage();
bitmap = image;
}
}
}
}
private void getProfileInfo() {
Intent I = getIntent();
String Uname = I.getStringExtra("Username");
final String Username = Uname.replaceAll("\\s", "");
RequestQueue queue = Volley.newRequestQueue(MainPage.this);
PD_three.show();
String UPLOAD_URL = "http://10.0.0.177/Echo/ServerFilesApp/GetProfileInfo.php?Username=" + Username;
StringRequest stringRequest = new StringRequest(Request.Method.GET, UPLOAD_URL, new Response.Listener<String>() {
@Override
public Bitmap onResponse(String response) {
PD_three.dismiss();
UserToken = response;
getProfilePicture();
return null;
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
PD_three.dismiss();
Toast.makeText(MainPage.this, error.toString(), Toast.LENGTH_LONG).show();
}
});
queue.add(stringRequest);
}
private void getProfilePicture() {
PD_three.show();
RequestQueue queue = Volley.newRequestQueue(MainPage.this);
String IMAGE_URL = "http://10.0.0.177/Echo/Users/" + UserToken + "/ProfilePicture.jpg";
pfp = (ImageView) findViewById(R.id.imageView_one);
ImageRequest request = new ImageRequest(IMAGE_URL,
new Response.Listener<Bitmap>() {
@Override
public Bitmap onResponse(Bitmap bitmap) {
cropImg = Bitmap.createBitmap(bitmap, 0, 0, 99, 99);
pfp.setImageBitmap(cropImg);
PD_three.dismiss();
return cropImg;
}
}, 0, 0, ImageView.ScaleType.FIT_CENTER, Bitmap.Config.RGB_565,
new Response.ErrorListener() {
public void onErrorResponse(VolleyError error) {
PD_three.dismiss();
pfp.setImageResource(R.drawable.ic_user_b);
Toast.makeText(MainPage.this, "Error on retrieving profile pic.", Toast.LENGTH_LONG).show();
}
});
queue.add(request);
}
private void UploadImage() {
RequestQueue queue = Volley.newRequestQueue(MainPage.this);
String UPLOAD_URL = "http://10.0.0.177/Echo/ServerFilesApp/UpdateProfilePicture.php";
PD_three.show();
StringRequest stringRequest = new StringRequest(Request.Method.POST, UPLOAD_URL,
new Response.Listener<String>() {
@Override
public Bitmap onResponse(String response) {
// getProfilePicture();
PD_three.dismiss();
Log.v(MainPage.class.getSimpleName(), "hey=hey");
getProfilePicture();
return null;
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
PD_three.dismiss();
Toast.makeText(MainPage.this, error.toString(), Toast.LENGTH_LONG).show();
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
String Image = getImageUri(bitmap);
String Name = UserToken + "/ProfilePicture";
Map<String, String> params = new Hashtable<String, String>();
params.put(KEY_IMAGE, Image);
params.put(KEY_NAME, Name);
params.put(KEY_USERTOKEN, UserToken);
return params;
}
};
queue.add(stringRequest);
}
public String getImageUri(Bitmap bmp) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] imageBytes = baos.toByteArray();
String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT);
return encodedImage;
}
public void postClick(View view) {
Intent I = getIntent();
String Uname = I.getStringExtra("Username");
final String Username = Uname.replaceAll("\\s", "");
//COMPRESS PFP
ByteArrayOutputStream stream = new ByteArrayOutputStream();
cropImg.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
postActivity = new Intent(MainPage.this, PostFragment.class);
postActivity.putExtra("UserToken", UserToken);
postActivity.putExtra("Username", Username);
postActivity.putExtra("profilePicture", byteArray);
MainPage.this.startActivity(postActivity);
//MainPage.this.overridePendingTransition(R.anim.slide_down, R.anim.slide_up);
}
public void onPfpClick(View view) {
Intent cropImage = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
cropImage.putExtra("crop", "true");
cropImage.putExtra("aspectX", 1);
cropImage.putExtra("aspectY", 1);
cropImage.putExtra("outputX", 100);
cropImage.putExtra("outputY", 100);
cropImage.putExtra("return-data", true);
setResult(RESULT_OK, cropImage);
startActivityForResult(cropImage, CROP_PIC_REQUEST_CODE);
}
private String Username() {
String Username = getIntent().getStringExtra("Username");
return Username;
}
}
Here's my fragment java code:
public class FeedFragment extends Fragment {
private static final String TAG = FeedFragment.class.getSimpleName();
private FeedListAdapter listAdapter;
private List<FeedItem> feedItems;
String UsernamePast;
String UserTokenPast;
Cache cache;
Entry entry;
String URL_FEED;
@SuppressLint("NewApi")
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_feed, container, false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
ListView listView = (ListView) getView().findViewById(R.id.FeedContentList);
feedItems = new ArrayList<FeedItem>();
listAdapter = new FeedListAdapter(getContext(), feedItems);
listView.setAdapter(listAdapter);
// We first check for cached request
cache = AppController.getInstance().getRequestQueue().getCache();
URL_FEED = "http://10.0.0.177/Echo/ServerFilesApp/feed.json";
entry = cache.get(URL_FEED);
getFeedContent();
}
public void getFeedContent() {
if (entry != null) {
// fetch the data from cache
try {
String data = new String(entry.data, "UTF-8");
try {
parseJsonFeed(new JSONObject(data));
} catch (JSONException e) {
e.printStackTrace();
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
} else {
// making fresh volley request and getting json
JsonObjectRequest jsonReq = new JsonObjectRequest(Method.GET,
URL_FEED, null, new Response.Listener<JSONObject>() {
@Override
public Bitmap onResponse(JSONObject response) {
VolleyLog.d(TAG, "Response: " + response.toString());
Log.v(TAG, "hey=" + "heu");
if (response != null) {
parseJsonFeed(response);
}
return null;
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
}
});
// Adding request to volley request queue
AppController.getInstance().addToRequestQueue(jsonReq);
}
}
/**
* Parsing json response and passing the data to feed view list adapter
*/
private void parseJsonFeed(JSONObject response) {
try {
JSONArray feedArray = response.getJSONArray("feed");
for (int i = 0; i < feedArray.length(); i++) {
JSONObject feedObj = (JSONObject) feedArray.get(i);
FeedItem item = new FeedItem();
item.setId(feedObj.getInt("id"));
item.setName(feedObj.getString("name"));
// Image might be null sometimes
String image = feedObj.isNull("image") ? null : feedObj
.getString("image");
item.setImage(image);
item.setStatus(feedObj.getString("status"));
item.setProfilePicture(feedObj.getString("profilePic"));
item.setTimeStamp(feedObj.getString("timeStamp"));
// url might be null sometimes
String feedURL = feedObj.isNull("url") ? null : feedObj
.getString("url");
item.setURL(feedURL);
item.setLitBackground(R.drawable.fire);
feedItems.add(item);
}
FeedItem item2 = new FeedItem();
item2.setId(0);
item2.setName("SORRY");
// Image might be null sometimes
item2.setImage(null);
item2.setStatus("This Is Everything there is for Now. Refresh to get More Content");
item2.setProfilePicture(null);
item2.setTimeStamp(null);
item2.setURL(null);
feedItems.add(item2);
// notify data changes to list adapter
listAdapter.notifyDataSetChanged();
} catch (JSONException e) {
e.printStackTrace();
}
}
@Override
public void onResume() {
super.onResume();
getFeedContent();
}
@Override
public void onPause() {
super.onPause();
cache.clear();
}
}
To go more in depth, what I'm trying to figure out is how can I refresh a fragment from a different java file?
Our objective is to have feed like Facebook but it doesn't load the posts we post. How will that be possible? (preferably using Google Volley request, if possible)