Skip to content

Commit

Permalink
chang detailnews layout
Browse files Browse the repository at this point in the history
add login fragment
add working bottom nav bar
fix dark mode
  • Loading branch information
xVemu committed Feb 9, 2020
1 parent 2b5e889 commit 4c55e57
Show file tree
Hide file tree
Showing 40 changed files with 604 additions and 265 deletions.
3 changes: 3 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 5 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
apply plugin: 'com.android.application'
apply plugin: "androidx.navigation.safeargs"

android {
compileSdkVersion 29
Expand All @@ -8,7 +9,7 @@ android {
minSdkVersion 23
targetSdkVersion 29
versionCode 1
versionName "1.0"
versionName "0.1"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
Expand All @@ -34,7 +35,9 @@ dependencies {
implementation 'androidx.recyclerview:recyclerview:1.1.0'
implementation "org.jsoup:jsoup:1.12.1"
implementation 'com.squareup.picasso:picasso:2.71828'
implementation 'com.google.android.material:material:1.2.0-alpha03'
implementation 'com.google.android.material:material:1.2.0-alpha04'
compileOnly 'org.projectlombok:lombok:1.18.10'
annotationProcessor 'org.projectlombok:lombok:1.18.10'
implementation 'androidx.navigation:navigation-fragment:2.2.1'
implementation 'androidx.navigation:navigation-ui:2.2.1'
}
3 changes: 1 addition & 2 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,7 @@
android:theme="@style/AppTheme"
tools:ignore="GoogleAppIndexingWarning"
tools:targetApi="n">
<activity android:name=".detailedNews.DetailActivity" />
<activity android:name=".mainActivity.MainActivity">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

Expand Down
40 changes: 40 additions & 0 deletions app/src/main/java/pl/vemu/zsme/MainActivity.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package pl.vemu.zsme;

import androidx.appcompat.app.AppCompatActivity;
import androidx.navigation.NavController;
import androidx.navigation.Navigation;
import androidx.navigation.ui.AppBarConfiguration;
import androidx.navigation.ui.NavigationUI;

import android.os.Bundle;

import com.google.android.material.bottomnavigation.BottomNavigationView;

import pl.vemu.zsme.newsFragment.NewsFragmentDirections;
import pl.vemu.zsme.timetableFragment.TimetableFragment;
import pl.vemu.zsme.timetableFragment.TimetableFragmentDirections;

public class MainActivity extends AppCompatActivity {

private NavController navController;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
navController = Navigation.findNavController(this, R.id.nav_host_fragment);
BottomNavigationView navigationView = findViewById(R.id.bottom_nav);
AppBarConfiguration configuration = new AppBarConfiguration.Builder(navigationView.getMenu()).build();
navController.addOnDestinationChangedListener((controller, destination, arguments) -> {
if (!STATIC.LOGGED_IN && destination.getId() == R.id.timetableFragment) navController.navigate(TimetableFragmentDirections.actionTimetableFragmentToLoginFragment());
});
NavigationUI.setupActionBarWithNavController(this, navController, configuration);
NavigationUI.setupWithNavController(navigationView, navController);
}

@Override
public boolean onSupportNavigateUp() {
navController.navigateUp();
return super.onSupportNavigateUp();
}
}
6 changes: 6 additions & 0 deletions app/src/main/java/pl/vemu/zsme/STATIC.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package pl.vemu.zsme;

public class STATIC {
public static boolean LOGGED_IN = false;
public static String TAG = "zsmeTAG";
}
27 changes: 0 additions & 27 deletions app/src/main/java/pl/vemu/zsme/detailedNews/DetailActivity.java

This file was deleted.

48 changes: 48 additions & 0 deletions app/src/main/java/pl/vemu/zsme/detailedNews/DetailFragment.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package pl.vemu.zsme.detailedNews;

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

import android.os.Bundle;
import android.text.Spanned;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import pl.vemu.zsme.R;
import pl.vemu.zsme.newsFragment.NewsItem;

public class DetailFragment extends Fragment implements IAsyncTaskContext {

private TextView detailText;
private NewsItem newsItem;

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_detail_news, container, false);
}

// TODO parse html
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
newsItem = DetailFragmentArgs.fromBundle(getArguments()).getNewsItem();
detailText = view.findViewById(R.id.detailText);
TextView title = view.findViewById(R.id.detailTitle);
TextView author = view.findViewById(R.id.detailAuthor);
TextView date = view.findViewById(R.id.detailDate);
title.setText(newsItem.getTitle());
author.setText(newsItem.getAuthor());
date.setText(newsItem.getDate());
new DownloadDetailedNews(this).execute(newsItem.getUrl());
}

@Override
public void setDetailText(String text) {
detailText.setText(text);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,6 @@ protected String doInBackground(String... strings) {
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
context.setParams(s);
context.setDetailText(s);
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
package pl.vemu.zsme.detailedNews;

public interface IAsyncTaskContext {
void setParams(String text);
void setDetailText(String text);
}
51 changes: 0 additions & 51 deletions app/src/main/java/pl/vemu/zsme/mainActivity/MainActivity.java

This file was deleted.

9 changes: 0 additions & 9 deletions app/src/main/java/pl/vemu/zsme/mainActivity/NewsItem.java

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
package pl.vemu.zsme.mainActivity;
package pl.vemu.zsme.newsFragment;

import android.os.AsyncTask;
import android.util.Log;
import android.widget.ProgressBar;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
Expand All @@ -12,11 +10,9 @@
import java.io.IOException;

import lombok.AllArgsConstructor;
import lombok.NonNull;
import lombok.RequiredArgsConstructor;

@AllArgsConstructor
public class DownloadNews extends AsyncTask<NewsAdapter, Void, NewsAdapter> {
public class DownloadNews extends AsyncTask<NewsAdapter, Void, NewsAdapter> implements IMakeNewsItem {

private final int page;
private final String search;
Expand All @@ -25,13 +21,9 @@ public DownloadNews(int page) {
this(page, null);
}

@Override
protected void onPreExecute() {
super.onPreExecute();
}

@Override
protected NewsAdapter doInBackground(NewsAdapter... newsAdapters) {
// TODO Add throw expection
try {
String url;
if (search == null) url = String.format("http://zsme.tarnow.pl/wp/page/%s/", page);
Expand All @@ -47,14 +39,8 @@ else if (search.equals("")) {
Elements columnOneNews = document.selectFirst(".column-one").children();
Elements columnTwoNews = document.selectFirst(".column-two").children();
for (int i = 0; i < columnOneNews.size(); i++) {
newsAdapters[0].addNewsItem(new NewsItem(columnOneNews.get(i).selectFirst(".article-title").text(),
columnOneNews.get(i).selectFirst(".article-entry").text(),
columnOneNews.get(i).selectFirst("img").attr("src"),
columnOneNews.get(i).selectFirst("a").attr("href")));
newsAdapters[0].addNewsItem(new NewsItem(columnTwoNews.get(i).selectFirst(".article-title").text(),
columnTwoNews.get(i).selectFirst(".article-entry").text(),
columnTwoNews.get(i).selectFirst("img").attr("src"),
columnTwoNews.get(i).selectFirst("a").attr("href")));
newsAdapters[0].addNewsItem(makeNewsItem(columnOneNews.get(i)));
newsAdapters[0].addNewsItem(makeNewsItem(columnTwoNews.get(i)));
}
} catch (IOException e) {
e.printStackTrace();
Expand Down
17 changes: 17 additions & 0 deletions app/src/main/java/pl/vemu/zsme/newsFragment/IMakeNewsItem.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package pl.vemu.zsme.newsFragment;

import org.jsoup.nodes.Element;

public interface IMakeNewsItem {

default NewsItem makeNewsItem(Element element) {
NewsItem.NewsItemBuilder newsItemBuilder = NewsItem.builder();
newsItemBuilder.title(element.selectFirst(".article-title").text())
.description(element.selectFirst(".article-entry").text())
.author(element.selectFirst(".article-author").text())
.date(element.selectFirst(".article-date").text())
.imgUrl(element.selectFirst("img").attr("src"))
.url(element.selectFirst("a").attr("href"));
return newsItemBuilder.build();
}
}
Loading

0 comments on commit 4c55e57

Please sign in to comment.