Skip to content
Snippets Groups Projects
Commit 0d128c54 authored by Jawn's avatar Jawn
Browse files

Users adapter converted to recyclerview

parent 0956e2a8
No related branches found
No related tags found
No related merge requests found
Showing
with 293 additions and 189 deletions
Loading
Loading
@@ -7,6 +7,8 @@ import com.squareup.otto.Bus;
 
import net.danlew.android.joda.JodaTimeAndroid;
 
import timber.log.Timber;
/**
* App for one time init things
* Created by Jawn on 7/27/2015.
Loading
Loading
@@ -24,6 +26,9 @@ public class GitLabApp extends Application {
@Override
public void onCreate() {
super.onCreate();
if (BuildConfig.DEBUG) {
Timber.plant(new Timber.DebugTree());
}
Repository.init(this);
JodaTimeAndroid.init(this);
}
Loading
Loading
Loading
Loading
@@ -115,33 +115,28 @@ public class IssueActivity extends BaseActivity {
}
stateSpinner.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, temp3));
stateSpinner.setSelection(temp3.indexOf(Repository.selectedIssue.getState()));
if(Repository.userAdapter != null) {
assigneeSpinner.setAdapter(Repository.userAdapter);
if(Repository.selectedIssue.getAssignee() != null)
assigneeSpinner.setSelection(Repository.userAdapter.getPosition(Repository.selectedIssue.getAssignee()), true);
}
else {
if(Repository.selectedIssue.getAssignee() != null) {
ArrayList<User> temp = new ArrayList<User>();
temp.add(Repository.selectedIssue.getAssignee());
assigneeSpinner.setAdapter(new UserAdapter(this, temp));
}
Repository.getService().getUsersFallback(Repository.selectedProject.getId(), usersCallback);
if(Repository.selectedIssue.getAssignee() != null) {
ArrayList<User> temp = new ArrayList<User>();
temp.add(Repository.selectedIssue.getAssignee());
assigneeSpinner.setAdapter(new UserAdapter(this, temp));
}
Repository.getService().getUsersFallback(Repository.selectedProject.getId(), usersCallback);
ArrayList<Milestone> temp2 = new ArrayList<Milestone>();
if(Repository.selectedIssue.getMilestone() != null)
if(Repository.selectedIssue.getMilestone() != null) {
temp2.add(Repository.selectedIssue.getMilestone());
}
milestoneSpinner.setAdapter(new MilestonesAdapter(this, temp2));
Repository.getService().getMilestones(Repository.selectedProject.getId(), milestonesCallback);
Bypass bypass = new Bypass();
String desc = Repository.selectedIssue.getDescription();
if(desc == null)
if(desc == null) {
desc = "";
}
description.setText(bypass.markdownToSpannable(desc));
description.setMovementMethod(LinkMovementMethod.getInstance());
Loading
Loading
@@ -294,6 +289,9 @@ public class IssueActivity extends BaseActivity {
MilestonesAdapter ma = new MilestonesAdapter(IssueActivity.this, milestones);
milestoneSpinner.setAdapter(ma);
milestoneSpinner.setSelection(ma.getPosition(Repository.selectedIssue.getMilestone()), true);
if (milestones.isEmpty()) {
milestoneSpinner.setVisibility(View.GONE);
}
}
@Override
Loading
Loading
Loading
Loading
@@ -6,11 +6,11 @@ import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.Snackbar;
import android.text.method.LinkMovementMethod;
import android.view.KeyEvent;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
 
import com.commit451.gitlab.model.Project;
import com.commit451.gitlab.model.Session;
Loading
Loading
@@ -76,7 +76,7 @@ public class LoginActivity extends BaseActivity {
String url = urlInput.getText().toString();
if(url.length() == 0) {
Snackbar.make(getWindow().getDecorView(), getString(R.string.login_error), Snackbar.LENGTH_SHORT)
Toast.makeText(this, getString(R.string.login_error), Toast.LENGTH_SHORT)
.show();
return;
}
Loading
Loading
@@ -210,7 +210,7 @@ public class LoginActivity extends BaseActivity {
connect(auth);
}
else {
Snackbar.make(getWindow().getDecorView(), getString(R.string.login_error), Snackbar.LENGTH_SHORT)
Toast.makeText(this, getString(R.string.login_error), Toast.LENGTH_SHORT)
.show();
}
}
Loading
Loading
package com.commit451.gitlab.adapter;
import android.support.v7.widget.RecyclerView;
import android.view.ViewGroup;
import com.commit451.gitlab.R;
import com.commit451.gitlab.model.User;
import com.commit451.gitlab.viewHolders.UserViewHolder;
import java.util.List;
/**
* Created by Jawn on 7/28/2015.
*/
public class NewUserAdapter extends RecyclerView.Adapter<UserViewHolder> {
private List<User> mValues;
public User getValueAt(int position) {
return mValues.get(position);
}
public NewUserAdapter(List<User> items) {
mValues = items;
}
@Override
public UserViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
UserViewHolder holder = UserViewHolder.create(parent);
return holder;
}
@Override
public void onBindViewHolder(final UserViewHolder holder, int position) {
User user = getValueAt(position);
holder.bind(user);
holder.itemView.setTag(R.id.list_position, position);
}
@Override
public int getItemCount() {
return mValues.size();
}
public void addUser(User user) {
mValues.add(user);
notifyItemInserted(mValues.size() - 1);
}
public void removeUser(long userId) {
for(User u : mValues) {
if(u.getId() == userId) {
int index = mValues.indexOf(u);
mValues.remove(u);
notifyItemRemoved(index);
break;
}
}
}
}
Loading
Loading
@@ -23,11 +23,13 @@ import butterknife.ButterKnife;
import retrofit.Callback;
import retrofit.RetrofitError;
import retrofit.client.Response;
import timber.log.Timber;
 
public class CommitsFragment extends Fragment implements SwipeRefreshLayout.OnRefreshListener {
 
@Bind(R.id.list) RecyclerView listView;
@Bind(R.id.swipe_layout) SwipeRefreshLayout swipeLayout;
@Bind(R.id.message_text) View messageView;
public CommitsFragment() {}
Loading
Loading
@@ -39,8 +41,9 @@ public class CommitsFragment extends Fragment implements SwipeRefreshLayout.OnRe
listView.setLayoutManager(new LinearLayoutManager(getActivity()));
swipeLayout.setOnRefreshListener(this);
 
if(Repository.selectedProject != null)
loadData();
if(Repository.selectedProject != null) {
loadData();
}
return view;
}
Loading
Loading
@@ -57,19 +60,22 @@ public class CommitsFragment extends Fragment implements SwipeRefreshLayout.OnRe
}
public void loadData() {
if(Repository.selectedProject == null)
return;
if(Repository.selectedProject == null) {
return;
}
 
if(Repository.selectedBranch == null) {
if(swipeLayout != null && swipeLayout.isRefreshing())
if(swipeLayout != null && swipeLayout.isRefreshing()) {
swipeLayout.setRefreshing(false);
}
 
listView.setAdapter(null);
return;
}
if(swipeLayout != null && !swipeLayout.isRefreshing())
if(swipeLayout != null && !swipeLayout.isRefreshing()) {
swipeLayout.setRefreshing(true);
}
Repository.getService().getCommits(Repository.selectedProject.getId(), Repository.selectedBranch.getName(), commitsCallback);
}
Loading
Loading
@@ -89,9 +95,12 @@ public class CommitsFragment extends Fragment implements SwipeRefreshLayout.OnRe
if(commits.size() > 0) {
Repository.newestCommit = commits.get(0);
messageView.setVisibility(View.GONE);
}
else {
Timber.d("No commits have been made");
Repository.newestCommit = null;
messageView.setVisibility(View.VISIBLE);
}
listView.setAdapter(new CommitsAdapter(commits));
}
Loading
Loading
@@ -100,8 +109,10 @@ public class CommitsFragment extends Fragment implements SwipeRefreshLayout.OnRe
public void failure(RetrofitError e) {
RetrofitHelper.printDebugInfo(getActivity(), e);
 
if(swipeLayout != null && swipeLayout.isRefreshing())
if(swipeLayout != null && swipeLayout.isRefreshing()) {
swipeLayout.setRefreshing(false);
}
messageView.setVisibility(View.VISIBLE);
 
Snackbar.make(getActivity().getWindow().getDecorView(), getString(R.string.connection_error_commits), Snackbar.LENGTH_SHORT)
.show();
Loading
Loading
Loading
Loading
@@ -43,7 +43,6 @@ public class FilesFragment extends Fragment implements SwipeRefreshLayout.OnRefr
View view = inflater.inflate(R.layout.fragment_files, container, false);
ButterKnife.bind(this, view);
 
list.setLayoutManager(new LinearLayoutManager(getActivity()));
 
swipeLayout.setOnRefreshListener(this);
Loading
Loading
@@ -104,7 +103,7 @@ public class FilesFragment extends Fragment implements SwipeRefreshLayout.OnRefr
if(swipeLayout != null && swipeLayout.isRefreshing())
swipeLayout.setRefreshing(false);
if(e.getResponse().getStatus() == 404) {
if(e.getResponse() != null && e.getResponse().getStatus() == 404) {
errorText.setVisibility(View.VISIBLE);
list.setVisibility(View.GONE);
}
Loading
Loading
@@ -114,7 +113,7 @@ public class FilesFragment extends Fragment implements SwipeRefreshLayout.OnRefr
}
list.setAdapter(null);
if(e.getResponse().getStatus() != 500) {
if(e.getResponse() != null && e.getResponse().getStatus() != 500) {
RetrofitHelper.printDebugInfo(getActivity(), e);
Snackbar.make(getActivity().getWindow().getDecorView(), getString(R.string.connection_error_files), Snackbar.LENGTH_SHORT)
.show();
Loading
Loading
package com.commit451.gitlab.fragments;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;
import com.commit451.gitlab.R;
import com.commit451.gitlab.model.DeleteResponse;
import com.commit451.gitlab.tools.Repository;
import com.commit451.gitlab.tools.RetrofitHelper;
import butterknife.ButterKnife;
import butterknife.OnClick;
import retrofit.Callback;
import retrofit.RetrofitError;
import retrofit.client.Response;
public class RemoveUserDialogFragment extends DialogFragment {
private ProgressDialog pd;
/**
* Create a new instance of AddDialogFragment
**/
static RemoveUserDialogFragment newInstance() {
return new RemoveUserDialogFragment();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.dialog_remove_user, container, false);
ButterKnife.bind(this, view);
getDialog().setTitle(getString(R.string.remove_user_dialog_title));
return view;
}
@Override
public void onDestroyView() {
super.onDestroyView();
ButterKnife.unbind(this);
}
@OnClick(R.id.remove_button)
public void onRemoveClick() {
if(Repository.selectedProject.getGroup() == null)
return;
pd = ProgressDialog.show(RemoveUserDialogFragment.this.getActivity(), "", getResources().getString(R.string.progress_dialog), true);
Repository.getService().removeGroupMember(Repository.selectedProject.getGroup().getId(), Repository.selectedUser.getId(), deleteCallback);
}
private Callback<DeleteResponse> deleteCallback = new Callback<DeleteResponse>() {
@Override
public void success(DeleteResponse response, Response resp) {
if(pd != null && pd.isShowing())
pd.cancel();
if(response.getUserId() != 0) {
Repository.userAdapter.removeUser(response.getUserId());
}
else {
Toast.makeText(getActivity(), getString(R.string.user_remove_error), Toast.LENGTH_SHORT)
.show();
}
RemoveUserDialogFragment.this.dismiss();
}
@Override
public void failure(RetrofitError e) {
RetrofitHelper.printDebugInfo(getActivity(), e);
if(pd != null && pd.isShowing())
pd.cancel();
Toast.makeText(getActivity(), getString(R.string.user_remove_error), Toast.LENGTH_SHORT)
.show();
RemoveUserDialogFragment.this.dismiss();
}
};
@OnClick(R.id.cancel_button)
public void onCancelClick() {
this.dismiss();
}
}
Loading
Loading
@@ -6,16 +6,15 @@ import android.support.v4.app.DialogFragment;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.TextView;
 
import com.commit451.gitlab.R;
import com.commit451.gitlab.adapter.UserAdapter;
import com.commit451.gitlab.adapter.NewUserAdapter;
import com.commit451.gitlab.model.User;
import com.commit451.gitlab.tools.Repository;
import com.commit451.gitlab.tools.RetrofitHelper;
Loading
Loading
@@ -29,10 +28,10 @@ import retrofit.Callback;
import retrofit.RetrofitError;
import retrofit.client.Response;
 
public class UsersFragment extends Fragment implements OnItemClickListener, SwipeRefreshLayout.OnRefreshListener {
public class UsersFragment extends Fragment implements SwipeRefreshLayout.OnRefreshListener {
@Bind(R.id.add_user_button) View addUserButton;
@Bind(R.id.fragmentList) ListView listView;
@Bind(R.id.list) RecyclerView listView;
@Bind(R.id.error_text) TextView errorText;
@Bind(R.id.swipe_layout) SwipeRefreshLayout swipeLayout;
Loading
Loading
@@ -42,13 +41,13 @@ public class UsersFragment extends Fragment implements OnItemClickListener, Swip
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_users, container, false);
ButterKnife.bind(this, view);
listView.setOnItemClickListener(this);
 
listView.setLayoutManager(new LinearLayoutManager(getActivity()));
swipeLayout.setOnRefreshListener(this);
 
if(Repository.selectedProject != null)
if(Repository.selectedProject != null) {
loadData();
}
return view;
}
Loading
Loading
@@ -65,16 +64,18 @@ public class UsersFragment extends Fragment implements OnItemClickListener, Swip
}
public void loadData() {
if(swipeLayout != null && !swipeLayout.isRefreshing())
swipeLayout.setRefreshing(true);
if(swipeLayout != null && !swipeLayout.isRefreshing()) {
swipeLayout.setRefreshing(true);
}
if(Repository.selectedProject.getGroup() == null) {
errorText.setVisibility(View.VISIBLE);
errorText.setText(R.string.not_in_group);
listView.setVisibility(View.GONE);
addUserButton.setVisibility(View.GONE);
if(swipeLayout != null && swipeLayout.isRefreshing())
if(swipeLayout != null && swipeLayout.isRefreshing()) {
swipeLayout.setRefreshing(false);
}
return;
}
Loading
Loading
@@ -85,14 +86,15 @@ public class UsersFragment extends Fragment implements OnItemClickListener, Swip
@Override
public void success(List<User> users, Response resp) {
if(swipeLayout != null && swipeLayout.isRefreshing())
swipeLayout.setRefreshing(false);
if(swipeLayout != null && swipeLayout.isRefreshing()) {
swipeLayout.setRefreshing(false);
}
errorText.setVisibility(View.GONE);
listView.setVisibility(View.VISIBLE);
addUserButton.setVisibility(View.VISIBLE);
Repository.userAdapter = new UserAdapter(getActivity(), users);
Repository.userAdapter = new NewUserAdapter(users);
listView.setAdapter(Repository.userAdapter);
addUserButton.setEnabled(true);
Loading
Loading
@@ -100,25 +102,14 @@ public class UsersFragment extends Fragment implements OnItemClickListener, Swip
@Override
public void failure(RetrofitError e) {
if(swipeLayout != null && swipeLayout.isRefreshing())
swipeLayout.setRefreshing(false);
if(e.getResponse() != null && e.getResponse().getStatus() == 404) {
errorText.setVisibility(View.VISIBLE);
errorText.setText(R.string.groups_not_supported);
listView.setVisibility(View.GONE);
addUserButton.setVisibility(View.GONE);
}
else {
errorText.setVisibility(View.GONE);
listView.setVisibility(View.VISIBLE);
addUserButton.setVisibility(View.VISIBLE);
RetrofitHelper.printDebugInfo(getActivity(), e);
Snackbar.make(getActivity().getWindow().getDecorView(), getString(R.string.connection_error_users), Snackbar.LENGTH_SHORT)
.show();
listView.setAdapter(null);
if(swipeLayout != null && swipeLayout.isRefreshing()) {
swipeLayout.setRefreshing(false);
}
errorText.setVisibility(View.VISIBLE);
addUserButton.setVisibility(View.GONE);
RetrofitHelper.printDebugInfo(getActivity(), e);
Snackbar.make(getActivity().getWindow().getDecorView(), getString(R.string.connection_error_users), Snackbar.LENGTH_SHORT)
.show();
}
};
Loading
Loading
@@ -132,13 +123,4 @@ public class UsersFragment extends Fragment implements OnItemClickListener, Swip
DialogFragment newFragment = AddUserDialogFragment.newInstance();
newFragment.show(ft, "dialog");
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Repository.selectedUser = Repository.userAdapter.getItem(position);
FragmentTransaction ft = getFragmentManager().beginTransaction();
DialogFragment newFragment = RemoveUserDialogFragment.newInstance();
newFragment.show(ft, "dialog");
}
}
\ No newline at end of file
Loading
Loading
@@ -10,7 +10,7 @@ import android.widget.ListAdapter;
import android.widget.ListView;
 
import com.commit451.gitlab.adapter.IssuesAdapter;
import com.commit451.gitlab.adapter.UserAdapter;
import com.commit451.gitlab.adapter.NewUserAdapter;
import com.commit451.gitlab.model.Branch;
import com.commit451.gitlab.model.DiffLine;
import com.commit451.gitlab.model.Group;
Loading
Loading
@@ -51,7 +51,7 @@ public class Repository {
public static DiffLine newestCommit;
 
public static IssuesAdapter issueAdapter;
public static UserAdapter userAdapter;
public static NewUserAdapter userAdapter;
public static float displayWidth;
Loading
Loading
Loading
Loading
@@ -25,8 +25,7 @@ public class ProjectViewHolder extends RecyclerView.ViewHolder {
return new ProjectViewHolder(view);
}
 
@Bind(R.id.project_title)
TextView title;
@Bind(R.id.project_title) TextView title;
 
public ProjectViewHolder(View view) {
super(view);
Loading
Loading
package com.commit451.gitlab.viewHolders;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.commit451.gitlab.R;
import com.commit451.gitlab.model.User;
import com.commit451.gitlab.tools.Repository;
import com.squareup.picasso.Picasso;
import butterknife.Bind;
import butterknife.ButterKnife;
import fr.tkeunebr.gravatar.Gravatar;
/**
* Projects, yay!
* Created by Jawn on 6/11/2015.
*/
public class UserViewHolder extends RecyclerView.ViewHolder {
public static UserViewHolder create(ViewGroup parent) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_user, parent, false);
return new UserViewHolder(view);
}
@Bind(R.id.title) TextView title;
@Bind(R.id.summary) TextView summary;
@Bind(R.id.custom) TextView custom;
@Bind(R.id.icon) ImageView icon;
public UserViewHolder(View view) {
super(view);
ButterKnife.bind(this, view);
}
public void bind(User user) {
title.setText(user.getName());
if(user.getEmail() != null) {
summary.setText(user.getEmail());
}
else {
summary.setText(user.getUsername());
}
custom.setText(user.getAccessLevel(itemView.getResources().getStringArray(R.array.role_names)));
float percent = Repository.displayWidth / 720f;
int size = (int) (96f * percent);
String url = "http://www.gravatar.com/avatar/00000000000000000000000000000000?s=" + size;
if(user.getEmail() != null) {
url = Gravatar.init().with(user.getEmail()).size(size).build();
}
else if(user.getAvatarUrl() != null) {
url = user.getAvatarUrl() + "&s=" + size;
}
Picasso.with(itemView.getContext()).load(url).into(icon);
}
}
app/src/main/res/drawable-nodpi/header.png

68.5 KiB

app/src/main/res/drawable-nodpi/header_image.png

9.43 KiB

Loading
Loading
@@ -17,4 +17,14 @@
 
</com.commit451.gitlab.views.GitLabSwipeRefreshLayout>
 
<TextView
android:id="@+id/message_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:text="@string/no_commits_found"
android:gravity="center"
android:layout_gravity="center"
android:visibility="gone"/>
</FrameLayout>
\ No newline at end of file
Loading
Loading
@@ -21,7 +21,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:text="@string/files_not_supported"
android:text="@string/no_files_found"
android:gravity="center"
android:layout_gravity="center"
android:visibility="gone"/>
Loading
Loading
Loading
Loading
@@ -4,28 +4,28 @@
android:layout_width="match_parent"
android:layout_height="match_parent" >
 
<TextView
android:id="@+id/error_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:gravity="center"
android:visibility="gone"/>
<com.commit451.gitlab.views.GitLabSwipeRefreshLayout
android:id="@+id/swipe_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
 
<ListView
android:id="@+id/fragmentList"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentLeft="true"
android:layout_below="@+id/add_user_button" />
<android.support.v7.widget.RecyclerView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
 
</com.commit451.gitlab.views.GitLabSwipeRefreshLayout>
 
<TextView
android:id="@+id/error_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:gravity="center"
android:layout_gravity="center"
android:text="@string/no_users_found"
android:visibility="gone"/>
<android.support.design.widget.FloatingActionButton
android:id="@+id/add_user_button"
android:layout_height="wrap_content"
Loading
Loading
Loading
Loading
@@ -9,7 +9,7 @@
android:id="@+id/project_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="@dimen/text_size_large"
android:textSize="@dimen/text_size_normal"
android:padding="@dimen/padding_normal"/>
 
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:minHeight="?android:attr/listPreferredItemHeight"
android:orientation="horizontal"
android:paddingLeft="8dp"
android:paddingRight="?android:attr/scrollbarSize" >
<RelativeLayout
android:id="@+id/img_lay"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="8dp" >
<ImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_launcher" />
</RelativeLayout>
<RelativeLayout
android:layout_toRightOf="@+id/img_lay"
android:id="@+id/user_list_item"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:minHeight="?android:attr/listPreferredItemHeight"
android:paddingRight="?android:attr/scrollbarSize" >
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:fadingEdge="horizontal"
android:singleLine="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/summary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/title"
android:layout_below="@+id/title"
android:ellipsize="marquee"
android:fadingEdge="horizontal"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="?android:attr/textColorSecondary" />
<TextView
android:id="@+id/custom"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="?android:attr/textColorSecondary" />
</RelativeLayout>
</RelativeLayout>
\ No newline at end of file
Loading
Loading
@@ -7,10 +7,8 @@
<ImageView
android:layout_width="match_parent"
android:layout_height="192dp"
android:scaleType="fitXY"
android:src="@drawable/header_image"
android:tint="?attr/colorPrimary"
android:background="?attr/colorAccent"
android:src="@drawable/header"
android:scaleType="centerCrop"
android:contentDescription="@null"/>
 
<android.support.v7.widget.RecyclerView
Loading
Loading
Loading
Loading
@@ -70,6 +70,7 @@
 
<!-- Files -->
<string name="file_saved">Datei wurde erfolgreich in den Downloads Ordner gespeichert</string>
<string name="no_files_found">Kein ergebnis.</string>
 
<!-- Issues -->
<string name="new_note_hint">Kommentar hinzufügen&#8230;</string>
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment